Содержание
- 2. Операции редукции – передача данных от всех процессов одному процессу int MPI_Reduce(void *sendbuf, void *recvbuf, int
- 3. Базовые типы данных MPI для С MPI_Datatype Тип данных MPI Тип C MPI_BYTE 8 битов для
- 4. Базовые типы операций редукции MPI_Op Операция Описание MPI_MAX максимальное значение MPI_MIN минимальное значение MPI_SUM сумма значений
- 5. Допустимые типы операндов MPI_Op Операция Допустимые типы операндов MPI_MAX целые, вещественные MPI_MIN MPI_SUM MPI_PROD MPI_MAXLOC MPI_MINLOC
- 6. Выполнение операций редукции Суть редукции - коллективная операция пересылки сообщений от всех процессов коммуникатора comm процессу
- 7. Схема выполнения редукции Лекция 11. И.Г. Захарова, кафедра ПО
- 8. Пример выполнения редукции для «+» Лекция 11. И.Г. Захарова, кафедра ПО
- 9. Синхронизация процессов Одновременное достижение всеми процессами коммуникатора определенной «точки» вычислений обеспечивает функция int MPI_Barrier(MPI_Comm comm) Вызывается
- 10. Передача данных от одного процесса всем процессам int MPI_Bcast(void *buf, int count, MPI_Datatype type, int root,
- 11. Улучшенная программа примера http://lusui.ru/64 int main(int argc, char** argv) { int rank=-1, total_proc=-1; int n; double
- 12. MPI_Bcast(&n,1, MPI_INT, 0, MPI_COMM_WORLD); if (n == 0) {break;} else { h = 1.0/(double) n; sum
- 13. if (rank == 0) { //Вторая засечка времени на головном процессоре t2 = MPI_Wtime(); cout cout
- 14. MPI. Операции передачи сообщений Операции, поддерживаемые MPI функциями: Парные (point-to-point) – для взаимодействия между двумя процессами.
- 15. Функция передачи сообщения int MPI_Send(void *buf, int count, MPI_Datatype type, int dest, int tag, MPI_Comm comm)
- 16. Режим отправки – стандартный (standard) Вызов функции обеспечивает режим standard: На время выполнения функции процесс-отправитель сообщения
- 17. Дополнительные режимы передачи сообщений Синхронный режим (Synchronous)–завершение функции отправки сообщения происходит только при получении от процесса-получателя
- 18. Дополнительные режимы передачи сообщений Буферизованный режим (Buffered) – для копирования отправляемых сообщений используются дополнительные системные буферы.
- 19. MPI буфер памяти Для использования буферизованного режима должен быть создан и передан MPI буфер памяти: int
- 20. Практическое использование режимов передачи Режим передачи по готовности формально – наиболее быстрый, но сложно гарантировать готовность
- 21. Функция приема сообщения int MPI_Recv(void *buf, int count, MPI_Datatype type, int source, int tag, MPI_Comm comm,
- 22. Требования к приему сообщения Буфер памяти должен быть достаточным для приема сообщения. При нехватке памяти часть
- 23. Требования к приему сообщения Параметр status позволяет определить для принятого сообщения: status.MPI_SOURCE – ранг процесса-отправителя принятого
- 24. Требования к приему сообщения Прием сообщения м.б. инициирован до момента, в момент, после момента начала отправки
- 25. Неблокирующее выполнение передачи данных Блокирующие функции - приостанавливают выполнение процессов (например, вычислений) до момента завершения работы
- 26. Неблокирующее выполнение передачи данных Неблокирующие функции обмена данными выполняются без блокировки процессов для совмещения процессов передачи
- 27. Неблокирующие функции int MPI_Isend(void*buf, int count, MPI_Datatypetype, int dest,int tag, MPI_Commcomm, MPI_Request*request); int MPI_Issend(void*buf, int count,
- 28. Параметры функций request - определяется функцией перед завершением выполнения и может использоваться для проверки в неблокирующей
- 30. Скачать презентацию