ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
53
Функция возвращает астрономическое время в секундах (вещественное чис-
ло), прошедшее с некоторого момента в прошлом. Гарантируется, что этот момент
не будет изменен за время существования процесса.
Прием/передача сообщений между отдельными процессами
Прием/передача сообщений с блокировкой
int MPI_Send(void* buf, int count, MPI_Datatype datatype, int
dest, int msgtag, MPI_Comm comm)
buf
- адрес начала буфера посылки сообщения;
count
- число передаваемых элементов в сообщении;
datatype
- тип передаваемых элементов;
dest -
номер процесса-получателя;
msgtag
- идентификатор сообщения;
comm
- идентификатор группы.
Блокирующая посылка сообщения с идентификатором
msgtag
, состоящая из
count
элементов типа
datatype
, процессу с номером
dest
. Все элементы сообщения
расположены подряд в буфере
buf.
Значение
count
может быть нулем. Тип переда-
ваемых элементов
datatype
должен указываться с помощью предопределенных кон-
стант типа. Разрешается передавать сообщение самому себе.
Блокировка гарантирует корректность повторного использования всех пара-
метров после возврата из подпрограммы. Выбор способа осуществления этой гаран-
тии: копирование в промежуточный буфер или непосредственная передача процессу
dest,
остается за MPI. Следует специально отметить, что возврат из подпрограммы
MPI_Send
не означает ни того, что сообщение уже передано процессу
dest
, ни того,
что сообщение покинуло процессорный элемент, на котором выполняется процесс,
выполнивший
MPI_Send
.
int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int
source, int msgtag, MPI_Comm comm, MPI_Status *status)
OUT buf
- адрес начала буфера приема сообщения;
count
- максимальное число элементов в принимаемом сообщении;
datatype
- тип элементов принимаемого сообщения;
source -
номер процесса-отправителя;
msgtag
- идентификатор принимаемого сообщения;
comm
- идентификатор группы;
OUT status
- параметры принятого сообщения.
1...,45,46,47,48,49,50,51,52,53,54 56,57,58,59,60,61,62,63,64,65,...180