1 / 11

Коммуникационные операции «точка-точка»

Коммуникационные операции «точка-точка». параллельное программирование. Функция передачи сообщений MPI_Send. Входные параметры:. Функция приема сообщений MPI_ Recv. Входные параметры:. Выходные параметры:. Типы данных MPI ( третий аргумент операций точка-точка ).

shanae
Download Presentation

Коммуникационные операции «точка-точка»

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Коммуникационные операции «точка-точка» параллельное программирование кафедра ЮНЕСКО по НИТ

  2. Функция передачи сообщений MPI_Send • Входные параметры: кафедра ЮНЕСКО по НИТ

  3. Функция приема сообщений MPI_Recv • Входные параметры: • Выходные параметры: кафедра ЮНЕСКО по НИТ

  4. Типы данных MPI (третий аргумент операций точка-точка) кафедра ЮНЕСКО по НИТ

  5. Рекомендации по использованию коммуникационных функций типа «точка-точка» • Сообщение должно быть отправлено на процесс, номер которого в диапазоне от 0 до SIZE-1 • Сообщение должно быть принято от процесса, номер которого в диапазоне от 0 до SIZE-1 • Отправляющий и принимающий процессора должны принадлежать одному коммуникатору comm • Идентификаторы сообщений tagдолжны совпадать • Типы передаваемых и принимаемых данных datatypeдолжны совпадать • Количество принимаемых данных countдолжно быть не меньше отправляемых • Размер буфераrbuf, принимающего данные, должен быть не меньше чем count кафедра ЮНЕСКО по НИТ

  6. Задание. Реализовать передачу нулевым процессом заданного значения (числа типа double) всем остальным процессам. кафедра ЮНЕСКО по НИТ

  7. Прием сообщений • В случае если процессор не знает какой процессор пересылает ему сообщение и с каким идентификатором, то можно использовать специальные константы: • принять данные от любого процессора: source = MPI_ANY_SOURCE • принять данные с любым идентификатором: tag = MPI_ANY_TAG • в последующем выяснить номер процесса и идентификатор сообщения можно по параметру status кафедра ЮНЕСКО по НИТ

  8. Statusсообщения – коммуникационная оболочка • В структуру statusзаписываются характеристики принимаемых данных функцией MPI_Recv • status.MPI_SOURCE (от кого) • status.MPI_TAG (с каким идентификатором) • status.MPI_ERROR кафедра ЮНЕСКО по НИТ

  9. Функция определения параметров полученного сообщения без его чтения MPI_Probe • Входные параметры: • Выходные параметры: кафедра ЮНЕСКО по НИТ

  10. Функция определения количества фактически принятых элементов MPI_Get_count • Входные параметры: • Выходные параметры: кафедра ЮНЕСКО по НИТ

  11. Задание • 1-ый и 2–ой процессоры делают по 5 посылок 0-му. • Причем каждый из процессоров посылает число элементов, отличное от другого (например 1-ый посылает один элемент, а 2-ой - два) • 0-ой процессор принимает 10 сообщений и после каждого приема выводит принятое на экран Требование: 0-ой процессор на каждой итерации должен принимать первую готовую посылку, не зная заранее от кого она, и должен получать ровно столько данных, сколько было отправлено кафедра ЮНЕСКО по НИТ

More Related