| 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<class T> T multiplies(T X, T Y) {
return( X * Y);
}
Для такой шаблонной функции, как эта, используются необходимые пара
//. . .
multiplies<double>(3.2,4.5);
multiplies<int>(7, 2) ; multiplies<rational>(«7/2»,«3/4»); //.. .
Здесь параметр T за
Реализация шаблонов и модельБРМО (типы данных)

