MPICH
| Тип |
Программное обеспечение для обмена сообщениями между вычислительными процессами |
|---|---|
| Написана на |
C, C++, Fortran, FreePascal |
| Операционная система | |
| Языки интерфейса | |
| Последняя версия |
1.5 (2 сентября 2012) |
| Тестовая версия |
3.0.1 (19 декабря 2012) |
| Лицензия |
нет |
| Сайт |
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
Примечания [править]
- ↑ MPICH1 реализуют стандарт MPI-1.1
- ↑ MPICH2 поддерживает MPI1 и MPI2
- ↑ Сайт Арагонской Национальной Лаборатории (англ.)
Ссылки [править]
- Домашняя страница MPICH2. (англ.)
- (Wiki) Арагонская лаборатория (англ.)
- Описание MPICH, установка и настройка MPICH в Windows
- Использование MPICH с Freepascal
| Это заготовка статьи о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |