MPICH

MPICH
MPICH2
Тип

Программное обеспечение для обмена сообщениями между вычислительными процессами

Написана на

C, C++, Fortran, FreePascal

Операционная система

Universal Mac OS X, Linux, Unix, Windows

Языки интерфейса

C, C++, Fortran

Последняя версия

1.5 (2 сентября 2012)

Тестовая версия

3.0rc1 (13 ноября 2012)

Лицензия

нет

Сайт

www.mcs.anl.gov

MPICH (англ. «Message Passing Interface Chameleon») — это одна из самых первых разработанных библиотек MPI. На её базе было создано большое количество других библиотек как OpenSource, так и коммерческих. В настоящее время существует две ветви исходных кодов: MPICH1[1] и MPICH2[2]. Разработка ветви MPICH1 заморожена. Ветвь MPICH2 активно разрабатывается в Арагонской лаборатории[3], с участием IBM, Cray, SiCortex, Microsoft, Intel, NetEffect, Qlogic, Myricom, Ohio state university, UBC.

Содержание

MPICH2

MPICH2 — легко портируемая быстрая реализация стандарта MPI. Отличительные особенности:

  • Поддерживает различные вычисли­тельные и коммуникационные платформы, включая общедоступные кластеры (настольные системы, системы с общей памятью, многоядерные архитектуры), высокоскоростные сети (Ethernet 10 ГБит/с, InfiniBand, Myrinet, Quadrics) и эксклюзивные вычислительные системы (Blue Gene, Cray, SiCortex).
  • Модульная структура для создания производных реализаций, предоставляющая широкие возможности для исследования технологии MPI.

Примеры программ

Ниже приведены примеры программ с использованием библиотеки MPICH:

Fortran

В этой программе на языке Fortran каждый из созданных потоков на вычислительном кластере выводит свой номер и приветствие:

program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
 
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end

Для компиляции и запуска этой программы в на 5 узлах нужно выполнить 2 команды:

mpif90 -o exe_f mpi_f.f
mpiexec -l -n 5 ./exe_f

Будет выведено нечто вроде:

1:  node           1 : Hello world
2:  node           2 : Hello world
3:  node           3 : Hello world
0:  node           0 : Hello world
4:  node           4 : Hello world

C

В этой программе на языке C (Си) каждый из созданных потоков на вычислительном кластере выводит свой номер и приветствие:

#include <stdio.h>
#include <mpi.h>
 
int main (int argc, char* argv[])
{
    int rank, size;
 
    MPI_Init (&argc, &argv);
    MPI_Comm_rank (MPI_COMM_WORLD, &rank);
    MPI_Comm_size (MPI_COMM_WORLD, &size);
 
    printf( "Hello world from process %d of %d\n", rank, size );
 
    MPI_Finalize();
 
    return 0;
}

Для компиляции и запуска этой программы на 5 узлах нужно выполнить 2 команды:

mpicc -o exe_c mpi_c.c
mpiexec -l -n 5 ./exe_c

Будет выведено нечто вроде:

0: Hello world from process 0 of 5
1: Hello world from process 1 of 5
3: Hello world from process 3 of 5
2: Hello world from process 2 of 5
4: Hello world from process 4 of 5

См. также

  • MPI (Message_Passing_Interface) — интерфейс обмена сообщений между процессами.
  • OpenMP — технология программирования многопоточных приложений на многопроцессорных системах.
  • OpenMPI — библиотека проекта объединения технологий и ресурсов ряда других проектов реализации MPI (FT-MPI, LA-MPI, LAM/MPI и PACX-MPI).
Сторонние разработки, основанные на MPICH
  • MPICH-GM
  • MVAPICH
  • MVICH (В настоящее время разработка прекращена)
  • Intel MPI
  • HP MPI
  • Voltaire MPI

Примечания

  1. MPICH1 реализуют стандарт MPI-1.1
  2. MPICH2 поддерживает MPI1 и MPI2
  3. Сайт Арагонской Национальной Лаборатории  (англ.)

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "MPICH" в других словарях:

  • MPICH — is a freely available, portable implementation of MPI, a standard for message passing for distributed memory applications used in parallel computing. MPICH is Free Software and is available for most flavours of Unix (including Linux and Mac OS X) …   Wikipedia

  • MPICH — es un programa de biblioteca de desarrollo de libre disposición implementación portable de MPI, una norma estándar de paso de mensaje para aplicaciones de memoria distribuida que utilizan computación paralela. MPICH es software gratuito y… …   Wikipedia Español

  • Mpich — ist eine freie portable Implementierung des MPI. MPI ist ein Standard für Datenaustausch mit Nachrichten in verteilten Rechnernetzen, die zum Parallelrechnen eingesetzt werden. MPICH ist Freie Software und für die meisten Unix und Linux… …   Deutsch Wikipedia

  • MPICH — Message Passing Interface (C Headers) Implementierung eines •des ANL …   Acronyms

  • MPICH-G — Grid oriented Message Passing Interface (C Headers) Implementierung eines •des ANL mit Erweiterungen …   Acronyms

  • MPICH — Message Passing Interface (C Headers) Implementierung eines [2]des ANL …   Acronyms von A bis Z

  • MPICH-G — Grid oriented Message Passing Interface (C Headers) Implementierung eines [2]des ANL mit Erweiterungen …   Acronyms von A bis Z

  • Interfaz de Paso de Mensajes — Para MPI (Multidimensional Poverty Index), véase Índice de pobreza multidimensional. MPI ( Message Passing Interface , Interfaz de Paso de Mensajes) es un estándar que define la sintaxis y la semántica de las funciones contenidas en una… …   Wikipedia Español

  • Message Passing Interface — MPI, the Message Passing Interface, is standardized and portable message passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers. The standard defines the syntax and… …   Wikipedia

  • Message Passing Interface — Сюда перенаправляется запрос «OpenMPI». На эту тему нужна отдельная статья. Message Passing Interface (MPI, интерфейс передачи сообщений) программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»