next up previous contents
Next: Топологические конструкторы Up: Топологии процессов Previous: Совместимость с MPI   Contents

Общие сведения о функциях

Функции MPI_GRAPH_CREATE и MPI_CART_CREATE используются для создания универсальной (графовой) и декартовой топологий соответственно. Эти функции являются коллективными. Как и для других коллективных обращений, программа для работы с топологией должна быть написана корректно, вне зависимости от того, являются ли обращения синхронизированными или нет.

Функции создания топологии используют в качестве входа существующий коммуникатор
comm_old, который определяет множество процессов, для которых и создается топология. Новый коммуникатор comm_topol хранит топологическую структуру как кэшируемую информацию (см. главу 5). По аналогии с функцией MPI_COMM_CREATE никакой кэшируемой информации не передается от comm_old к comm_topol.

Функция MPI_CART_CREATE может использоваться для описания декартовой системы произвольной размерности. Для каждой координаты она определяет, является ли структура процессов периодической или нет. Таким образом, никакой специальной поддержки для структур типа гиперкуб не нужно. Локальная вспомогательная функция MPI_DIMS_CREATE используется для вычисления сбалансированности процессов для заданного количества размерностей.

Объяснение: Подобные функции содержатся в EXPRESS [22] и PARMACS.[]

Функция MPI_TOPO_TEST может использоваться для запроса о топологии, связанной с коммуникатором. Информация о топологии может быть извлечена из коммуникаторов с помощью функций MPI_GRAPHDIMS_GET и MPI_GRAPH_GET для графов и MPI_CARTDIM_GET и MPI_CART_GET - для декартовой топологии.

Несколько дополнительных функций обеспечивают работу с декартовой топологией: функции MPI_CART_RANK и MPI_CART_COORDS переводят декартовы координаты в номер группы и обратно; функция MPI_CART_SUB может использоваться для выделения декартова подпространства (аналогично функции MPI_COMM_SPLIT). Функция MPI_CART_SHIFT обеспечивает необходимую информацию для обмена между соседними процессами в декартовой системе координат.

Две функции MPI_GRAPH_NEIGHBORS_COUNT и MPI_GRAPH_NEIGHBORS используются для выделения соседних процессов на топологической схеме. Функция MPI_CART_SUB является коллективной для группы входного коммуникатора, остальные функции локальные.

В последнем разделе описаны две дополнительные функции: MPI_GRAPH_MAP и MPI_CART_MAP. В ообщем случае функции не вызываются пользователем непосредственно. Тем не менее, совместно с функциями управления коммуникаторами, представленными в главе 5, они достаточны для реализации всех других топологических функций.



Alex Otwagin 2002-12-10