next up previous contents
Next: Декартова функция MPI_DIMS_CREATE Up: Топологические конструкторы Previous: Топологические конструкторы   Contents

Конструктор декартовой топологии

Синтаксис функции CART_CREATE представлен ниже.

MPI_CART_CREATE(comm_old, ndims, dims, periods, reorder, comm_cart)

IN comm_old исходный коммуникатор (дескриптор)
IN ndims размерность создаваемой декартовой решетки (целое)
IN dims целочисленный массив размера ndims, хранящий количество процес-сов по каждой координате
IN periods массив логических элементов размера ndims, определяющий, перио-дична (true) или нет (false) решетка в каждой размерности
IN reorder нумерация может быть сохранена (false) или переупорядочена (true) (логическое значение)
OUT comm_cart коммуникатор новой декартовой топологии (дескриптор)

int MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods,
int reorder, MPI_Comm *comm_cart)

MPI_CART_CREATE(COMM_OLD, NDIMS, DIMS,
PERIODS, REORDER, COMM_CART, IERROR)
INTEGER COMM_OLD, NDIMS, DIMS(*), COMM_CART, IERROR
LOGICAL PERIODS(*), REORDER

MPI::Cartcomm MPI::Intracomm::Create_cart(
int ndims, const int dims[], const bool periods[],
bool reorder) const

Функция MPI_CART_CREATE возвращает дескриптор нового коммуникатора, к которому подключается топологическая информация. Если reorder = false, то номер каждого процесса в новой группе идентичен номеру в старой группе. В противном случае функция может переупорядочивать процессы (возможно, чтобы обеспечить хорошее наложение виртуальной топологии на физическую систему). Если полная размерность декартовой решетки меньше, чем размер группы коммуникаторов, то некоторые процессы возвращаются с результатом MPI_COMM_NULL по аналогии с MPI_COMM_SPLIT. Вызов будет неверным, если он задает решетку большего размера, чем размер группы.



Alex Otwagin 2002-12-10