Интерфейсы программирования

Коммуникационные библиотеки и интерфейсы (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


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)


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


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


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

© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ
Rambler's Top100