Содержание
- 2. MPI MPI - Message Passing Interface, интерфейс передачи сообщений. Стандарт MPI 1.1. Более 120 функций. SPMD-модель
- 3. MPI Префикс MPI_ . include ‘mpif.h’ (mpi.h для языка Си) Процессы, посылка сообщений. Группы процессов, коммуникаторы.
- 4. MPI Каждый процесс может одновременно входить в разные коммуникаторы. Два основных атрибута процесса: коммуникатор (группа) и
- 5. MPI Сообщение — набор данных некоторого типа. Атрибуты сообщения: номер процесса-отправителя, номер процесса-получателя, идентификатор сообщения и
- 6. MPI В последнем аргументе (в Си – возвращаемое значение функции) большинство функций MPI возвращают информацию об
- 7. MPI MPI_INIT(IERR) INTEGER IERR Инициализация параллельной части программы. Все другие функции MPI могут быть вызваны только
- 8. MPI MPI_FINALIZE(IERR) INTEGER IERR Завершение параллельной части приложения. Все последующие обращения к любым MPI-функциям, в том
- 9. MPI Общая схема MPI-программы: PROGRAM EXAMPLE INCLUDE ‘mpif.h’ INTEGER IERR … CALL MPI_INIT(IERR) … CALL MPI_FINALIZE(IERR)
- 10. MPI MPI_INITIALIZED(FLAG, IERR) LOGICAL FLAG INTEGER IERR В аргументе FLAG возвращает .TRUE., если вызвана из параллельной
- 11. MPI MPI_COMM_SIZE(COMM, SIZE, IERR) INTEGER COMM, SIZE, IERR В аргументе SIZE возвращает число параллельных процессов в
- 12. MPI MPI_COMM_RANK(COMM, RANK, IERR) INTEGER COMM, RANK, IERR В аргументе RANK возвращает номер процесса в коммуникаторе
- 13. MPI DOUBLE PRECISION MPI_WTIME(IERR) INTEGER IERR Функция возвращает для каждого вызвавшего процесса астрономическое время в секундах
- 14. MPI DOUBLE PRECISION MPI_WTICK(IERR) INTEGER IERR Функция возвращает разрешение таймера в секундах.
- 15. MPI PROGRAM EXAMPLE INCLUDE ‘mpif.h’ INTEGER IERR, SIZE, RANK CALL MPI_INIT(IERR) CALL MPI_COMM_SIZE(MPI_COMM_WORLD, SIZE, & IERR)
- 16. MPI MPI_SEND(BUF, COUNT, DATATYPE, DEST, MSGTAG, COMM, IERR) BUF(*) INTEGER COUNT, DATATYPE, DEST, MSGTAG, COMM, IERR
- 17. MPI Типы данных: MPI_INTEGER – INTEGER MPI_REAL – REAL MPI_DOUBLE_PRECISION – DOUBLE PRECISION MPI_COMPLES – COMPLEX
- 18. MPI Модификации функции MPI_SEND: MPI_BSEND — передача сообщения с буферизацией. MPI_SSEND — передача сообщения с синхронизацией.
- 19. MPI MPI_BUFFER_ATTACH(BUF, SIZE, IERR) BUF(*) INTEGER SIZE, IERR Назначение массива BUF размера SIZE для использования при
- 20. MPI MPI_BUFFER_DETACH(BUF, SIZE, IERR) BUF(*) INTEGER SIZE, IERR Освобождение массива BUF для других целей. Процесс блокируется
- 21. MPI MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, MSGTAG, COMM, STATUS, IERR) BUF(*) INTEGER COUNT, DATATYPE, SOURCE, MSGTAG, COMM,
- 22. MPI Вместо аргументов SOURCE и MSGTAG можно использовать константы: MPI_ANY_SOURCE — признак того, что подходит сообщение
- 23. MPI Параметры принятого сообщения всегда можно определить по соответствующим элементам массива STATUS: STATUS(MPI_SOURCE)— номер процесса-отправителя. STATUS(MPI_TAG)
- 24. MPI Если один процесс последовательно посылает два сообщения, соответствующие одному и тому же вызову MPI_RECV, другому
- 25. MPI MPI_GET_COUNT(STATUS, DATATYPE, COUNT, IERR) INTEGER COUNT, DATATYPE, IERR, STATUS(MPI_STATUS_SIZE) По значению параметра STATUS функция определяет
- 26. MPI MPI_PROBE(SOURCE, MSGTAG, COMM, STATUS, IERR) INTEGER SOURCE, MSGTAG, COMM, IERR, STATUS(MPI_STATUS_SIZE) Получение в массиве STATUS
- 28. Скачать презентацию