int MPI_Comm_dup( MPI_Comm CommIn, MPI_Comm *CommOut) ; | Дублирует уже существующий коммуникатор со всей его кашированной информацией |
int MPI_Comm_free( MPI_Comm *Comm) ; | Отмечает объект коммуникатора как освобожденный |
int MPI_Comm_group( MPI_Comm Comm, MPI_Group *Group); | Получает доступ к группе, связанной с заданным коммуникатором |
int MPI_Comm_size( MPI_Comm Comm, int *Size); | Вычисляет и возвращает размер группы, связанной с заданным коммуникатором |
int MPI_Comm_split(MPI_Comm Comm, int Color,int Key,MPI_Comm *CommOut) ; | Создает новые коммуникаторы на основе цветов и ключей |
int MPI_Comm_test_inter( MPI_Comm Comm, int *Flag); | Определяет, является ли коммуникатор inter-коммуникатором |
int MPI_Comm_remote_group( MPI_Comm Comm, MPI_Group *Group); | Получает доступ к удаленной группе, связанной с заданным inter-коммуникатором |
int MPI_Comm_remote_size( MPI_Comm Comm, int *Size); | Вычисляет и возвращает размер удаленной |
группы, связанной с заданным inter- | |
коммуникатором |
Анатомия MPI-задачи
На рис.9.1 представлена каркасная MPI-программа. Задачи, выполняемые этой программой, просто сообщают свои ранги MPI-задаче с нулевым рангом. Каждая MPI-программа должна иметь по крайней мере функции MPI_Init()
и MPI_Finalize(). Функция MPI_Init() инициализирует MPI-среду для вызывающей задачи, а функция MPI_Finalize () освобождает ресурсы этой MPI-задачи. Каждая MPI-задача должна вызвать функцию MPI_Finalize() до своего завершения. Обратите вниИспользование шаблонных функций для представления MPI-задач
Шаблоны функции позволяют обоб
template
return( X * Y);
}
Для такой шаблонной функции, как эта, используются необходимые пара
//. . .
multiplies
multiplies
Здесь параметр T
заРеализация шаблонов и модельБРМО (типы данных)
Пара
//Листинг 9.2. Использование шаблонных функций для //
определения «фронта работ» МР1-задачint main(int argc, char *argv[]) {
//.. .