Интерфейсы программирования
Коммуникационные библиотеки и интерфейсы (API) параллельного программирования:
ACE, ARCH, BIP, BLACS, BSPlib, CVM, Counterpoint, FM, Gala, GA, HPVM, ICC, JIAJIA, KELP, LPARX, MPI, MPL, OOMPI, OpenMP, P4, Para++, Phosphorus, PVM, Quarks, ROMIO, ShMem, SVMlib, TOOPS, Treadmarks
ACE
- Объектно-ориентированная среда для построения распределенных сетевых приложений на языке С++.
- Распространяется свободно.
- Поддерживаются платформы Win32, UNIX, MVS, различные realtime-системы. Доступна Java-версия.
ARCH
- ARCH - это объектно-ориентированная библиотека для программирования параллельных компьютеров. Базируется на C++, использует MPI. Предлагает конструкции для коммуникаций асинхронных процессов, эмулирует использование общей памяти.
- Издана книга: "Multi-threaded, Object-Oriented MPI-Based Message Passing Interface: The ARCH Library", by Jean-Marc Adamo, Kluwer Academic Publishers, 1998.
- Текущая версия: V4.
- Другие ссылки: Скачать по ftp
BIP
- BIP (Basic Interface for Parallelism) - маленький API, разработанный для сети Myrinet. Его цель - предоставление приложениям пользователей максимальной производительности, предоставляемой аппаратурой. BIP реализован для кластеров на базе Linux/x86, соединенных с помощью Myrinet с чипами LANAI4.1. Версия 0.94 работает также на Linux/Alpha. Вместе с BIP поставляются также MPI-BIP (реализация MPICH, основанная на BIP) и IP-BIP (протокол IP, использующий BIP).
- Текущая версия: 0.94
BLACS
- BLACS (Basic Linear Algebra Communication Subprograms) - библиотека передачи сообщений, ориентированная на решение задач линейной алгебры. BLACS используется в качестве коммуникационного интерфейса в библиотеке ScaLAPACK. Доступны версии, реализованные через MPI, MPL, NX, PVM.
- Текущая версия: 1.1
- Другие ссылки: информация про BLACS в рабочих материалах по LAPACK
- Списки рассылки/новостные группы: адрес для информации.
BSPlib
- BSPlib - коммуникационная библиотека, использующая BSP-модель параллельного программирования. BSPlib может использоваться с языками C, C++, Fortran. Поддерживает две основные парадигмы - передачу сообщений и прямой доступ в нелокальную память. Основное ядро библиотеки состоит всего из 20 функций.
- Текущая версия - 1.3
- Другие ссылки: Скачать по ftp - здесь или здесь.
CVM
- CVM (Coherent Virtual Machine) - библиотека для программирования компьютеров с распределенной памятью. Модули библиотеки написаны на языке C++. Проект находится в стадии разработки. Предпологается использование различных моделей памяти, различных коммуникационных протоколов.
- Текущая версия: 0.2
Counterpoint
- Counterpoint - это механизм коммуникации и синхронизации процессов параллельных программ. Реализуется с помощью трех основных операций над глобальными переменными: Read, Write и Remove. Существующая реализация использует MPI.
- Текущая версия: 0.9
Fast Messages (FM)
- Fast Messages - коммуникационные средства нижнего уровня, позволяющие получить достаточно хорошую скорость пересылок даже для маленьких сообщений. Реализовано для персональных компьютеров x86 под управлением Windows NT и Linux, соединенных сетями Myrinet или Winsock 2 (100 Mbit Ethernet).
- Текущая версия: 2.1
Gala
- Gala - библиотека параллельного программирования для Delphi (Windows 95/98/NT). Модель взаимодействия параллельных процессов - асимметричное рандеву (как в языке Ada). Взаимодействие выполняется с помощью объектов-каналов, которыми владеют процессы. Кроме этого, в библиотеку включена поддержка всех синхронизирующих примитивов Win32.
- Разработчик: Сергей Гурин (Томский Политехнический Университет).
- Текущая версия: 1.01 (beta).
- Скачать по FTP - gala.zip (606K, библиотека с примерами и документацией).
Global Array (GA)
- GA - программный интерфейс для компьютеров с распределенной памятью. Эмулирует наличие общей памяти, в программе не требуется написание явных пересылок. Реализуется через MPI или TCGMSG.
- Текущая версия: 2.4
- Другие ссылки: Скачать по ftp
HPVM
- HPVM (High Performance Virtual Machines) - набор средств для программирования параллельных систем. Включает в себя Fast Messages, MPI, Shmem, Global Array, Fortran 90, HPF Реализовано для персональных компьютеров x86 под управлением Windows NT и Linux, соединенных сетями Myrinet или TCP/IP.
- Команда разработчиков: Concurrent Systems Architecture Group (UCSD), руководитель проекта: Andrew A. Chien.
iCC
- ICC (Interprocessor Collective Communications Library) - библиотека, реализующая различные примитивы глобальных операций внутри групп, работа с которыми реализована также, как в MPI.
- Текущая версия: R2.1.0
- Другие ссылки: Скачать по ftp
JIAJIA
- JIAJIA - средство для коммуникации, эмулирующее использование общей памяти в кластерах рабочих станций и персональных компьютеров. Включает также средства управления распределением массивов, механизмы глобальных операций и функции посылки сообщений.
- Текущая версия: 2.0
- Списки рассылки/новостные группы: адрес для информации.
KeLP
- KeLP (Kernel Lattice Parallelism) - библиотека классов языка C++, помогающая переносить научные приложения (в первую очередь конечные разностные методы) на компьютеры с распределенной памятью. KeLP является развитием проекта LPARX.
- Текущая версия: 1.0
LPARX
- LPARX - библиотека классов языка C++, помогающая переносить научные приложения (в первую очередь конечные разностные методы) на компьютеры с распределенной памятью. В 1995 году проект был остановлен, его развитием является KeLP.
- Текущая версия: 2.0
MPI
- MPI (Message Passing Interface) - хорошо стандартизованный механизм для построения программ по модели обмена сообщениями. Существуют стандартные "привязки" MPI к языкам С, С++, Fortran 77, Fortran 90. Существуют бесплатные и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI - наиболее широко используемый и динамично развивающийся интерфейс из своего класса.
- Текущая версия стандарта: 2.0.
- MPI посвящена конференция Usenet: comp.parallel.mpi
- Первая русскоязычная страница об MPI (на нашем сервере).
MPL (Message Passing Library)
- MPL - библиотека передачи сообщений, разработанная корпорацией IBM. Используется на массивно-параллельных компьютерах RS/6000 SP и кластерах на базе систем RS/6000. Библиотечные функции могут использоваться в программах на языках C и Fortran. В настоящее время библиотека MPL практически вытеснена высокопроизводительной реализацией стандартного интерфейса MPI.
OOMPI
- OOMPI (Object Oriented MPI ) - библиотека классов языка C++, включающая в иерархию классов всю функциональность MPI версии 1.0.
- Текущая версия: 1.0.4
OpenMP
- OpenMP - программный интерфейс (API) для программирования компьютеров с разделяемой памятью (SMP/NUMA). OpenMP можно использовать для программирования на языках Fortran и C/C++.
- Текущая версия стандарта: 1.0
- Первая русскоязычная страница об OpenMP (на нашем сервере).
P4
- P4 - библиотека параллельного программировния, состоящая из макросов и подпрограмм, позволяющих писать программы для компьютеров с распределенной памятью на языках C и Fortran, используя как посылку сообщений, так и эмуляцию общей памяти. Существуют реализации библиотеки для огромного числа компьютеров.
- Текущая версия: 1.4
- Более подробно: User's Guide to the p4 Parallel Programming System
- Другие ссылки: Скачать по ftp
Para++
- Para++ - набор интерфейсов программ на языке C++ для использования различных библиотек передачи сообщений. Реализованы интерфейсы для PVM и MPI.
- Текущая версия: v2.3
- Списки рассылки/новостные группы: для присоединения к списку рассылки нужно послать письмо на адрес listserv@loria.fr с пустым полем subject и 'SUBSCRIBE para++ FirstName Name Organization' в первой строчке письма.
Phosphorus
- Phosphorus - надстройка над PVM, позволяющая эмулировать использование общей памяти на компьютерах с распределенной памятью.
PVM
- PVM (Parallel Virtual Machine) - общедоступная библиотека, предоставляющая возможности управления процессами с помощью механизма передачи сообщений. Существуют реализации PVM для самых различных платформ.
- Текущая версия: 3.4
- Другие ссылки: Использование PVM. Введение в программирование. (Автор: Илья Евсеев)
- Списки рассылки/новостные группы: comp.parallel.pvm
- Message Passing Environments Using Scalable Coherent Interface (SCI). В рамках данного проекта разрабатывается реализация PVM поверх SCI (автор: Markus Fischer).
Quarks
- Quarks - библиотека, позволяющая эмулировать использование общей памяти на компьютерах с распределенной памятью.
- Текущая версия: 0.8.6b
- Другие ссылки: Скачать по ftp
ROMIO
- ROMIO - реализация системы параллельного ввода-вывода MPI-IO. Она включена в реализации MPI MPICH 1.1.1 и HP MPI 1.4, а также реализована на большом числе компьютеров.
- Текущая версия: 1.0.1
- Списки рассылки/новостные группы: для присоединения к списку рассылки нужно послать письмо на адрес majordomo@mcs.anl.gov с сообщением "subscribe romio-users".
ShMem
- ShMem - библиотека, разработанная Cray Research Inc.. Она реализует схему работы над общей памятью с помощью операций Put/Get. В настоящее время существуют реализации для всех суперкомпьютерных систем с общей памятью SGI/Cray под управлением ОС IRIX. Существует также (в модифицированном виде) в составе общедоступного пакета HPVM, работающего на ОС Windows NT и Linux. Функциональность ShMem включена в стандарт MPI 2.0 в качестве раздела "Односторонние коммуникации".
SVMlib
TOOPS
- TOOPS (Tool for Object Oriented Protocol Simulation) - объектно-ориентированная библиотека классов языка C++ со средствами поддержки создания и коммуникации процессов.
- Текущая версия: 1.2.1
TreadMarks
- TreadMarks - библиотека, эмулирующая использование общей памяти в сети рабочих станций.
- Текущая версия: 1.0.1
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ