Презентация на тему Введение в параллельные вычисления. Технология программирования MPI (день четвертый)

Презентация на тему Введение в параллельные вычисления. Технология программирования MPI (день четвертый), предмет презентации: Разное. Этот материал содержит 19 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Текст слайда:

Введение в параллельные вычисления. Технология программирования MPI (день четвертый)

Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных информационных технологий НИВЦ МГУ


Слайд 2
Текст слайда:

MPI

MPI_SEND_INIT(BUF, COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR)
BUF(*)
INTEGER COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR
Формирование отложенного запроса на посылку сообщения. Сама операция пересылки не начинается!


Слайд 3
Текст слайда:

MPI

Модификации функции MPI_SEND_INIT:
MPI_BSEND_INIT — формирование запроса на передачу сообщения с буферизацией.
MPI_SSEND_INIT —  формирование запроса на передачу сообщения с синхронизацией.
MPI_RSEND_INIT —  формирование запроса на передачу сообщения по готовности.


Слайд 4
Текст слайда:

MPI

MPI_RECV_INIT(BUF, COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR)
BUF(*)
INTEGER COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR
Формирование отложенного запроса на прием сообщения. Сама операция приема не начинается!


Слайд 5
Текст слайда:

MPI

MPI_START(REQUEST, IERR)
INTEGER REQUEST, IERR
Инициализация отложенного запроса на выполнение операции обмена, соответствующей значению параметра REQUEST. Операция запускается как неблокирующая.


Слайд 6
Текст слайда:

MPI

MPI_STARTALL(COUNT, REQUESTS, IERR)
INTEGER COUNT, REQUESTS, IERR
Инициализация COUNT отложенных запросов на выполнение операций обмена, соответствующих значениям первых COUNT элементов массива REQUESTS. Операции запускаются как неблокирующие.


Слайд 7
Текст слайда:

MPI

Сообщение, отправленное при помощи отложенного запроса, может быть принято любой из процедур MPI_RECV и MPI_IRECV, и наоборот.

По завершении отложенного запроса значение параметра REQUEST (REQUESTS) сохраняется и может использоваться в дальнейшем!


Слайд 8
Текст слайда:

MPI

MPI_REQUEST_FREE(REQUEST, IERR)
INTEGER REQUEST, IERR
Удаляет структуры данных, связанные с параметром REQUEST. REQUEST устанавливается в значение MPI_REQUEST_NULL. Если операция, связанная с этим запросом, уже выполняется, то она завершится.


Слайд 9
Текст слайда:

MPI

prev = rank - 1
next = rank + 1
if (rank .eq. 0) prev = numtasks - 1
if (rank .eq. numtasks - 1) next = 0
call MPI_RECV_INIT(rbuf(1), 1,
& MPI_REAL, prev, tag1,
& MPI_COMM_WORLD, reqs(1), ierr)
call MPI_RECV_INIT(rbuf(2), 1,
& MPI_REAL, next, tag2,
& MPI_COMM_WORLD, reqs(2), ierr)
call MPI_SEND_INIT(sbuf(1), 1,
& MPI_REAL, prev, tag2,
& MPI_COMM_WORLD, reqs(3), ierr)


Слайд 10
Текст слайда:

MPI

call MPI_SEND_INIT(sbuf(2), 1,
& MPI_REAL, next, tag1,
& MPI_COMM_WORLD, reqs(4), ierr)
do i=...
sbuf(1)=...
sbuf(2)=...
call MPI_STARTALL(4, reqs, ierr)
...
call MPI_WAITALL(4, reqs, stats,
& ierr);
...
end do


Слайд 11
Текст слайда:

MPI

Тупиковые ситуации (deadlock):

процесс 0:
RECV(1)
SEND(1)

процесс 1:
RECV(0)
SEND(0)

процесс 0:
SEND(1)
RECV(1)

процесс 1:
SEND(0)
RECV(0)


Слайд 12
Текст слайда:

MPI

Разрешение тупиковых ситуаций:
1.

процесс 0:
SEND(1)
RECV(1)

процесс 1:
RECV(0)
SEND(0)

2. Использование неблокирующих операций

3. Использование функции MPI_SENDRECV


Слайд 13
Текст слайда:

MPI

MPI_SENDRECV(SBUF, SCOUNT, STYPE, DEST, STAG, RBUF, RCOUNT, RTYPE, SOURCE, RTAG, COMM, STATUS, IERR)
SBUF(*), RBUF(*)
INTEGER SCOUNT, STYPE, DEST, STAG, RCOUNT, RTYPE, SOURCE, RTAG, COMM, STATUS(MPI_STATUS_SIZE), IERR


Слайд 14
Текст слайда:

MPI

Совмещенные прием и передача сообщений с блокировкой. Буферы передачи и приема не должны пересекаться. Тупиковой ситуации не возникает!
Сообщение, отправленное операцией MPI_SENDRECV, может быть принято обычным образом, и операция MPI_SENDRECV может принять сообщение, отправленное обычной операцией.


Слайд 15
Текст слайда:

MPI

MPI_SENDRECV_REPLACE(BUF, COUNT, DATATYPE, DEST, STAG, SOURCE, RTAG, COMM, STATUS, IERR)
BUF(*)
INTEGER COUNT, DATATYPE, DEST, STAG, SOURCE, RTAG, COMM, STATUS(MPI_STATUS_SIZE), IERR
Совмещенные прием и передача сообщений с блокировкой через общий буфер BUF.


Слайд 16
Текст слайда:

MPI

prev = rank - 1
next = rank + 1
if (rank .eq. 0) prev = numtasks - 1
if (rank .eq. numtasks - 1) next = 0
call MPI_SENDRECV(
& sbuf(1), 1, MPI_REAL, prev, tag2,
& rbuf(1), 1, MPI_REAL, next, tag2,
& MPI_COMM_WORLD, status1, ierr)
call MPI_SENDRECV(
& sbuf(2), 1, MPI_REAL, next, tag1,
& rbuf(2), 1, MPI_REAL, prev, tag1,
& MPI_COMM_WORLD, status1, ierr)


Слайд 17
Текст слайда:

MPI

MPI_BARRIER(COMM, IERR)
INTEGER COMM, IERR
Работа процессов блокируется до тех пор, пока все оставшиеся процессы коммуникатора COMM не выполнят эту процедуру. Все процессы должны вызвать MPI_BARRIER, хотя реально исполненные вызовы различными процессами коммуникатора могут быть расположены в разных местах программы.


Слайд 18
Текст слайда:

MPI

Специальное значение MPI_PROC_NULL для несуществующего процесса. Операции с таким процессом завершаются немедленно с кодом завершения MPI_SUCCESS.

next=rank+1
if(rank .EQ. size-1) next=MPI_PROC_NULL
call MPI_SEND (buf, 1, MPI_REAL, next,
& tag, MPI_COMM_WORLD, ierr)


Слайд 19
Текст слайда:

MPI

MPI_GET_PROCESSOR_NAME(NAME, LEN, IERR)
CHARACTER*(*) NAME
INTEGER LEN, IERR
Функция возвращает в строке NAME имя узла, на котором запущен вызвавший процесс. В переменной LEN возвращается количество символов в имени, не превышающее константы MPI_MAX_PROCESSOR_NAME.


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика