35
MPI_Group_intersection, MPI_Group_difference,
MPI_Group_incl, MPI_Group_excl, MPI_Group_free;
- получение информации о коммуникаторах:
MPI_Comm_size, MPI_Comm_rank, MPI_Comm_compare;
- создание и уничтожение коммуникаторов:
MPI_Comm_create, MPI_Comm_dup, MPI_Comm_split,
MPI_Comm_free;
- функции работы с так называемыми интер-коммуникаторами:
MPI_Intercomm_create, MPI_Intercomm_merge,
MPI_Comm_test_inter, MPI_Comm_remote_group,
MPI_Comm_remote_size.
Дополнительно к описанным функциям работы с коммуни-
каторами, MPI также содержит функции для работы с виртуаль-
ными топологиями, которые также представляются коммуника-
торами и предназначены, прежде всего, для более удобной
адре-
сации процессов в программе:
- функции работы с многомерной решеткой в декартовых коор-
динатах:
MPI_Cart_create, MPI_Cart_coords, MPI_Cart_rank,
MPI_Cart_shift, MPI_Cart_sub и др.;
- функции работы с произвольным графом:
MPI_Graph_create, MPI_Graph_neighbors_count,
MPI_Graph_neighbors и др.
В рамках коммуникаций процессов между собой могут пе-
редаваться данные как предопределенных типов, так и более
сложных определенных пользователем типов данных. Для работы
со сложными типами данных MPI предоставляет следующие
функции:
- создание и освобождение составных типов данных:
MPI_Type_contiguous, MPI_Type_vector, MPI_Type_indexed,
MPI_Type_struct, MPI_Type_commit, MPI_Type_free;
- формирование из произвольных данных с произвольным раз-
мещением непрерывной области данных для передачи между
узлами, а также извлечение их на приемной стороне:
MPI_Pack_size, MPI_Pack, MPI_Unpack.
Наконец, программный интерфейс содержит функции рабо-