ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
56
процессом, быть может, со своим набором параметров. Возврат из процедуры кол-
лективного взаимодействия может произойти в тот момент, когда участие процесса
в данной операции уже закончено. Как и для блокирующих процедур, возврат озна-
чает то, что разрешен свободный доступ к буферу приема или посылки, но не озна-
чает ни того, что операция завершена другими процессами, ни даже того, что она
ими начата (если это возможно по смыслу операции).
int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int
source, MPI_Comm comm)
•
OUT
buf
- адрес начала буфера посылки сообщения;
•
count
- число передаваемых элементов в сообщении;
•
datatype
- тип передаваемых элементов;
•
source
- номер рассылающего процесса;
•
comm
- идентификатор группы.
Рассылка сообщения от процесса
source
всем процессам, включая рассылаю-
щий процесс. При возврате из процедуры содержимое буфера
buf
процесса
source
будет скопировано в локальный буфер процесса. Значения параметров
count
,
datatype
и
source
должны быть одинаковыми у всех процессов.
Синхронизация процессов
int MPI_Barrier( MPI_Comm comm)
•
comm
- идентификатор группы.
Блокирует работу процессов, вызвавших данную процедуру, до тех пор, пока
все оставшиеся процессы группы
comm
также не выполнят эту процедуру.
Предопределенные константы
Предопределенные константы типа элементов сообщений
Константы MPI
Тип в C
MPI_CHAR
signed char
MPI_SHORT
signed int
MPI_INT
signed int
MPI_LONG
signed long int
MPI_UNSIGNED_CHAR
unsigned char
MPI_UNSIGNED_SHORT unsigned int
MPI_UNSIGNED
unsigned int
MPI_UNSIGNED_LONG
unsigned long int
MPI_FLOAT
float
MPI_DOUBLE
double
MPI_LONG_DOUBLE
long double