ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
          
        
        
          
            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
          
        
        
          - параметры принятого сообщения.