MPICH

Поделись знанием:
Перейти к: навигация, поиск
MPICH2
Тип

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

Написана на

C, C++, Fortran, FreePascal

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

Universal Mac OS X, Linux, Unix, Windows

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

C, C++, Fortran

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

3.2b3[1] (4 июня 2015)

Лицензия

BSD-like

Сайт

[www.mcs.anl.gov/research/projects/mpich2/ .anl.gov/research/projects/mpich2/]

К:Википедия:Статьи без изображений (тип: не указан)

MPICH (сокр. от англ. «Message Passing Interface CHameleon») — одна из самых первых разработанных библиотек MPI. На её базе было создано большое количество других библиотек как открытых, так и коммерческих.

До ноября 2012 года существовали две ветви исходных кодов: MPICH1[2] и MPICH2.[3] Разработка ветви MPICH1 заморожена. Ветвь MPICH2 активно разрабатывается в Аргоннской национальной лаборатории США[4], с участием компаний IBM, Cray, SiCortex, Microsoft, Intel, NetEffect, Qlogic, Myricom, UBC, а также Университета штата Огайо. Начиная с релиза в ноябре 2012 проект MPICH2 был переименован обратно в "MPICH", но уже версии 3.0. Начиная с этой версии объявлена полная поддержка стандарта MPI-3.





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

См. также

Сторонние разработки, основанные на MPICH
  • MPICH-GM
  • MVAPICH
  • MVICH (в настоящее время разработка прекращена)
  • Intel MPI
  • HP MPI
  • Voltaire MPI

Напишите отзыв о статье "MPICH"

Примечания

  1. [www.mpich.org/2015/06/04/mpich-3-2b3-released/ MPICH 3.2b3 released]
  2. MPICH1 реализовавшая стандарт MPI-1.1
  3. MPICH2 поддерживавшая MPI1 и MPI2
  4. [www.mcs.anl.gov/index.php Сайт Аргоннской национальной лаборатории]  (англ.)

Ссылки

  • [www.mcs.anl.gov/research/projects/mpich2/ Домашняя страница MPICH2]  (англ.)
  • [wiki.mcs.anl.gov/mpich2/index.php/Main_Page Вики Аргоннской лаборатории]  (англ.)
  • [iproc.ru/programming/mpich-windows/ Описание MPICH, установка и настройка MPICH в Windows]
  • [citforum.ru/programming/delphi/freepascal/ Использование MPICH с Freepascal]


Отрывок, характеризующий MPICH

– Oui, sans doute! [Да, разумеется!] – сказал Даву, но что «да», Пьер не знал.
Пьер не помнил, как, долго ли он шел и куда. Он, в состоянии совершенного бессмыслия и отупления, ничего не видя вокруг себя, передвигал ногами вместе с другими до тех пор, пока все остановились, и он остановился. Одна мысль за все это время была в голове Пьера. Это была мысль о том: кто, кто же, наконец, приговорил его к казни. Это были не те люди, которые допрашивали его в комиссии: из них ни один не хотел и, очевидно, не мог этого сделать. Это был не Даву, который так человечески посмотрел на него. Еще бы одна минута, и Даву понял бы, что они делают дурно, но этой минуте помешал адъютант, который вошел. И адъютант этот, очевидно, не хотел ничего худого, но он мог бы не войти. Кто же это, наконец, казнил, убивал, лишал жизни его – Пьера со всеми его воспоминаниями, стремлениями, надеждами, мыслями? Кто делал это? И Пьер чувствовал, что это был никто.
Это был порядок, склад обстоятельств.
Порядок какой то убивал его – Пьера, лишал его жизни, всего, уничтожал его.


От дома князя Щербатова пленных повели прямо вниз по Девичьему полю, левее Девичьего монастыря и подвели к огороду, на котором стоял столб. За столбом была вырыта большая яма с свежевыкопанной землей, и около ямы и столба полукругом стояла большая толпа народа. Толпа состояла из малого числа русских и большого числа наполеоновских войск вне строя: немцев, итальянцев и французов в разнородных мундирах. Справа и слева столба стояли фронты французских войск в синих мундирах с красными эполетами, в штиблетах и киверах.
Преступников расставили по известному порядку, который был в списке (Пьер стоял шестым), и подвели к столбу. Несколько барабанов вдруг ударили с двух сторон, и Пьер почувствовал, что с этим звуком как будто оторвалась часть его души. Он потерял способность думать и соображать. Он только мог видеть и слышать. И только одно желание было у него – желание, чтобы поскорее сделалось что то страшное, что должно было быть сделано. Пьер оглядывался на своих товарищей и рассматривал их.
Два человека с края были бритые острожные. Один высокий, худой; другой черный, мохнатый, мускулистый, с приплюснутым носом. Третий был дворовый, лет сорока пяти, с седеющими волосами и полным, хорошо откормленным телом. Четвертый был мужик, очень красивый, с окладистой русой бородой и черными глазами. Пятый был фабричный, желтый, худой малый, лет восемнадцати, в халате.
Пьер слышал, что французы совещались, как стрелять – по одному или по два? «По два», – холодно спокойно отвечал старший офицер. Сделалось передвижение в рядах солдат, и заметно было, что все торопились, – и торопились не так, как торопятся, чтобы сделать понятное для всех дело, но так, как торопятся, чтобы окончить необходимое, но неприятное и непостижимое дело.
Чиновник француз в шарфе подошел к правой стороне шеренги преступников в прочел по русски и по французски приговор.
Потом две пары французов подошли к преступникам и взяли, по указанию офицера, двух острожных, стоявших с края. Острожные, подойдя к столбу, остановились и, пока принесли мешки, молча смотрели вокруг себя, как смотрит подбитый зверь на подходящего охотника. Один все крестился, другой чесал спину и делал губами движение, подобное улыбке. Солдаты, торопясь руками, стали завязывать им глаза, надевать мешки и привязывать к столбу.
Двенадцать человек стрелков с ружьями мерным, твердым шагом вышли из за рядов и остановились в восьми шагах от столба. Пьер отвернулся, чтобы не видать того, что будет. Вдруг послышался треск и грохот, показавшиеся Пьеру громче самых страшных ударов грома, и он оглянулся. Был дым, и французы с бледными лицами и дрожащими руками что то делали у ямы. Повели других двух. Так же, такими же глазами и эти двое смотрели на всех, тщетно, одними глазами, молча, прося защиты и, видимо, не понимая и не веря тому, что будет. Они не могли верить, потому что они одни знали, что такое была для них их жизнь, и потому не понимали и не верили, чтобы можно было отнять ее.