Описание основных функций стандарта Message Passing Interface. Возвращение в качестве своего значения кода завершения функции MPI. Применение для инициализации среды выполнения. Определение количества соседних процессов, с процессом выходящих дуг.
Аннотация к работе
Все функции MPI (кроме MPI_Wtime и MPI_Wtick) возвращают в качестве своего значения код завершения. Другие значения кода завершения свидетельствуют об обнаружении тех или иных ошибочных ситуаций в ходе выполнения функций.5.int MPI_Send (void *buf, int count, MPI_Datatype type, int dest, int tag, MPI_Comm comm), где buf - адрес буфера памяти, в котором располагаются данные отправляемого сообщения, count - количество элементов данных пересылаемого сообщения, type - тип элементов данных пересылаемого сообщения, dest - ранг процесса, которому отправляется сообщение, tag - значение-тег, используемое для идентификации сообщения, comm - коммуникатор, в рамках которого выполняется передача данных.Используется для передачи сообщений в стандартном режиме. 15.int MPI_Recv (void *buf, int count, MPI_Datatype type, int source, int tag, MPI_Comm comm, MPI_Status *status), где buf - адрес буфера памяти, в котором располагаются данные принимаемого сообщения, count - количество элементов данных принимаемого сообщения; type - тип элементов данных принимаемого сообщения; source - ранг процесса, от которого должен быть выполнен прием сообщения; tag - тег сообщения, которое должно быть принято для процесса; comm - коммуникатор, в рамках которого выполняется передача данных; status - указатель на структуру данных с информацией о результате выполнения.Используется для приема сообщения. 25.MPI_Waitsome (int incount, MPI_Request *array_of_requests, int *outcount, int *array_of_indices, MPI_Status *array_of_statuses), где incount - длина массива запросов; array_of_requests - массив запросов; outcount - число завершенных запросов; array_of_indices - массив индексов операций, которые завершены; array_of_statuses - массив статусных операций для завершенных операций.Выполняет ожидание завершения хотя бы одной из перечисленных операций обмена и оценку состояния по всем операциям. 27.int MPI_Bcast (void *buf, int count, MPI_Datatype type, int root, MPI_Comm comm), где buf, count, type - буфер памяти с отправляемым сообщением (для процесса с рангом 0) и для приема сообщений (для всех остальных процессов); root - ранг процесса, выполняющего рассылку данных; comm - коммуникатор, в рамках которого выполняется передача данных.Выполняет операцию передачи данных от одного процесса всем процессам, входящим в коммуникатор (широковещательная рассылка данных). 28.int MPI_Reduce (void *sendbuf, void *recvbuf, int count, MPI_Datatype type, MPI_Op op, int root, MPI_Comm comm), где sendbuf - буфер памяти с отправляемым сообщением; recvbuf - буфер памяти для результирующего сообщения (только для процесса с рангом root); count - количество элементов в сообщениях; type - тип элементов сообщений; op - операция, которая должна быть выполнена над данными; root - ранг процесса, на котором должен быть получен результат; comm - коммуникатор, в рамках которого выполняется операция.Реализует обработку данных (редукцию).