Пакет программ MPI
Типы передаваемых данных. Сообщения могут быть разных типов: символьные, целочисленные (short, regular и long integers), с обычной и удвоенной точностью, с плавающей точкой и др. Из существующих типов можно образовать новые типы сообщений. Пакет MPI (Message-Passing Interface — интерфейс с передачей сообщений) для программирования мультикомпьютеров содержит значительно большее количество… Читать ещё >
Пакет программ MPI (реферат, курсовая, диплом, контрольная)
Пакет MPI (Message-Passing Interface — интерфейс с передачей сообщений) для программирования мультикомпьютеров содержит значительно большее количество библиотечных вызовов (процедур) и параметров на каждый вызов, чем PVM.
Программы MPI, в отличие от PVM, не связаны с созданием процессов и управлением процессами. Процессы должен создавать пользователь с помощью локальных системных вызовов. После создания процессы организуются в группы, которые в дальнейшем не изменяются. С такими группами и работает пакет MPI.
Рассмотрим четыре понятия, которые лежат в основе MPI. Коммуникатор — это группа процессов и контекст в виде метки, которая идентифицирует, например, фазу выполнения. В процессе отправки и получения сообщений контекст может использоваться для того, чтобы несвязанные сообщения не мешали друг другу.
Типы передаваемых данных. Сообщения могут быть разных типов: символьные, целочисленные (short, regular и long integers), с обычной и удвоенной точностью, с плавающей точкой и др. Из существующих типов можно образовать новые типы сообщений.
Операции коммуникации. Пакет MPI поддерживает большое количество операций коммуникации. Например, используемая операция MPI_Send для отправки сообщения в пункт назначения имеет поля:
- • buffer — пересылается содержимое буфера;
- • count — число элементов буфера;
- • datajypt- тип отправляемых данных;
- • tag — пометка для получателя, чтобы он смог принять сообщение только с данным тегом;
- • destination — индекс из списка процессов, который указывает, к какой группе процессов относится целевой процесс.
Вызов для получения отправленного сообщения MPIRecv имеет подобные поля. В нем сообщается, что получатель ищет сообщение определенного типа из определенного источника с определенным тегом.
Пакет MPI поддерживает четыре основных типа коммуникации:
- • синхронный тип, в котором отправитель не может начать передачу данных, пока получатель не вызовет процедуру MPI Recv;
- • коммуникацию с использованием буфера, при которой ограничение для синхронного типа недействительно;
- • стандартный тип, который зависит от реализации и может быть либо синхронным, либо с использованием буфера;
- • тип, сходный с синхронным типом: отправитель требует, чтобы получатель был доступен, но без проверки.
Каждый из типов коммуникации бывает двух видов: блокирующим и неблокирующим.
Виртуальная топология. Пакет MPI поддерживает коллективную коммуникацию — широковещание, распределение и сбор данных, обмен данными и т. д. При этом все процессы в группе должны делать вызов с совместимыми параметрами, чтобы не возникали ошибки. Часто встречающаяся форма коллективной коммуникации организована в виде дерева, в котором передача ведется от листьев к корню, подчиняясь определенной обработке на каждом шаге (например, сложение значений или взятие максимума). Организация процессов (в дерево, кольцо или другим способом) облегчает коммуникацию.