Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Стандарт MPI

Читайте также:
  1. II. Стандарт предоставления государственной услуги
  2. PCI DSS v 2.0октябрь 2010 г.- стандарт защиты информации в индустрии платежных карт
  3. В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году).
  4. Время выдержки устанавливают в стандартах и ТУ на изделия и ПИ и выбирают из ряда 10, 30 мин; 1, 2, 3, 4, 6, 8, 10 ч.
  5. ВЫПИСКА из ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО СТАНДАРТА ВЫСШЕГО ОБРАЗОВАНИЯ
  6. Глава 2.4 СТАНДАРТ 100VG-AnyLAN
  7. Глава 5. Стандарты ИСО сеРИИ 9000

Наиболее распространенной библиотекой параллельного программирования в модели передачи сообщений является MPI (Message Passing Interface). Рекомендуемой бесплатной реализацией MPI является пакет MPICH, разработанный в Аргоннской национальной лаборатории.

MPI является библиотекой функций межпроцессорного обмена сообще-

ниями и содержит около 300 функций, которые делятся на следующие классы:

операции точка-точка, операции коллективного обмена, топологические опера-

ции, системные и вспомогательные операции. Поскольку MPI является стан-

дартизованной библиотекой функций, то написанная с применением MPI про-

грамма без переделок выполняется на различных параллельных ЭВМ. Принци-

пиально для написания подавляющего большинства программ достаточно не-

скольких функций, которые приведены ниже.

Функция MPI_Send является операцией точка-точка и используется для посылки данных в конкретный процесс.

Функция MPI_Recv также является точечной операцией и используется для приема данных от конкретного процесса.

Для рассылки одинаковых данных всем другим процессам используется коллективная операция MPI_BCAST, которую выполняют все процессы, как посылающий, так и принимающие.

Функция коллективного обмена MPI_REDUCE объединяет элементы входного буфера каждого процесса в группе, используя операцию op, и возвращает объединенное значение в выходной буфер процесса с номером root.

MPI_Send(address, сount, datatype, destination, tag, comm),

аddress – адрес посылаемых данных в буфере отправителя

сount – длина сообщения

datatype – тип посылаемых данных

destination – имя процесса-получателя

tag – для вспомогательной информации

comm – имя коммуникатора

MPI_Recv(address, count, datatype, source, tag, comm, status)

address – адрес получаемых данных в буфере получателя

count– длина сообщения

datatype– тип получаемых данных

source – имя посылающего процесса процесса

tag -для вспомогательной информации

comm– имя коммуникатора

status -для вспомогательной информации

MPI_BCAST (address, сount, datatype, root, comm)

root – номер рассылающего (корневого)процесса

MPI_REDUCE(sendbuf, recvbuf, count, datatype, op, root, comm)

sendbuf -адрес посылающего буфера

recvbuf -адрес принимающего буфера

count -количество элементов в посылающем буфере

datatype – тип данных

op -операция редукции

root -номер главного процесса

Кроме этого, используется несколько организующих функций.

MPI_INIT ()

MPI_COMM_SIZE (MPI_COMM_WORLD, numprocs)

MPI_COMM_RANK (MPI_COMM_WORLD, myid)

MPI_FINALIZE ()

Обращение к MPI_INIT присутствует в каждой MPI программе и должно

быть первым MPI – обращением. При этом в каждом выполнении программы

может выполняться только один вызов После выполнения этого оператора все

процессы параллельной программы выполняются параллельно. MPI_INIT.

MPI_COMM_WORLD является начальным (и в большинстве случаев единственным) коммуникатором и определяет коммуникационный контекст и связанную группу процессов.

Обращение MPI_COMM_SIZE возвращает число процессов numprocs, запущенных в этой программе пользователем.

Вызывая MPI_COMM_RANK, каждый процесс определяет свой номер в группе процессов с некоторым именем.

Строка MPI_FINALIZE () должно быть выполнена каждым процессом программы. Вследствие этого никакие MPI – операторы больше выполняться не будут. Перемсенная COM_WORLD определяет перечень процессов, назначенных для выполнения программы.

 


Дата добавления: 2015-07-08; просмотров: 162 | Нарушение авторских прав


Читайте в этой же книге: Алгоритм автоматического распараллеливания арифметических | Метод списочных расписаний. | Классификация Фишера для мелкозернистого паралеллизма | ЛЕКЦИЯ 8. | Независимостные архитектуры. | ЛЕКЦИЯ 9. | ЛЕКЦИЯ 10. | Арифметические конвейеры | Многопроцессорные системы с общей памятью или | Многопроцессорные системы с индивидуальной памятью или |
<== предыдущая страница | следующая страница ==>
Параллельные алгоритмы| Программа умножения матрицы на вектор

mybiblioteka.su - 2015-2024 год. (0.007 сек.)