Высокопроизводительные вычисления на кластерах. Беликов Д.А - 147 стр.

UptoLike

147
SUBROUTINE VecCreateMPI(comm, m, n, x, ierr)
INTEGER m, n, comm, ierr
VEC x
которая создает вектор, распределенный по всем процессам в ком-
муникаторе comm. Здесь m указывает число компонентов, которые
нужно хранить в памяти на локальном процессе, а n есть общее чис-
ло компонентов вектора. Вектор x можно распределить и автомати-
чески, используя вместо m или n директиву PETSC_DECIDE. При
автоматическом выборе с помощью PETSC_DECIDE можно указать
только локальную или глобальную размерность вектора, но не обе
вместе. Например:
Call VecCreateMPI(comm, PETSC_DECIDE, n, x, ierr)
автоматически распределит вектор х из n компонент по процессам.
Чтобы создать новый вектор v того же формата, что и сущест-
вующий x, используется процедура
SUBROUTINE VecDuplicate(x, v, ierr)
Vec x, v
Когда вектор x больше не будет использоваться в программе, он
удаляется процедурой
SUBROUTINE VecDestroy(x, ierr)
Vec x
Единственное значение value всем компонентам вектора x можно
присвоить с помощью процедуры
SUBROUTINE VecSet(x, value, ierr)
INTEGER ierr
Vec x
Double precision value
Присвоение различных значений индивидуальным компонентам
вектора более сложно, если нужно получить эффективный парал-