Класифікація мов і систем паралельного програмування

Вибір технології паралельного програмування є складною задачею, якщо прийняти до уваги, що тільки мов і систем розробки паралельних програм є понад 100 і їх кількість невпинно зростає. Відповідно до цього є різні підходи до їх узагальнення і класифікації. В табл.8.1 наведена класифікація, яка частково орієнтована на архітектури паралельних систем.

Таблиця 8.1. – Паралельні мови і системи програмування

Для систем з спільною пам’яттю Для систем з розподіленою пам’яттю Паралельні об’єктно-орієнтовані Паралельні декларативні
a b C d
ОpenMP PVM HPC++ Parlog
Linda MPI MPL Multilisp
Orca HPF CA Sisal
Java Cilk Distributed Java Concurrent Prolog
Pthreads C Charm++ GHC
Opus ZPL Concurrent Aggregates Strand
SDL Occam Argus Tempo
Ease Concurrent C Presto  
SHMEM Ada Nexus
  FORTRAN M uC++
CSP sC++
NESL pC++

Деякі мови параллельного програмування машинно-залежні і створені для конкретних систем. Використовуються і універсальні мови програмування високого рівня, такі як сучасні версії мови FORTRAN і мова С.

FORTRAN D – розширення мови FORTRAN 77/90, за допомогою якої можна визначити машинно-незалежним чином як треба розподілити дані між процесорами. Мова дозволяє використовувати спільний простір імен. Транслятори можуть генерувати код як для SIMD, так і для MIMD-машин. FORTRAN D є попередником мови High Perfomance FORTRAN (HPF).

В мовах попереджуючих обчислень паралелізм реалізований за допомогою паралельного виконання обчислень ще до того, як їх результат потрібний для продовження виконання програми. Прикладами таких мов є: MultiLisp – паралельна версія мови Lisp, QLisp, Mul-T.

Мови програмування в моделі паралелізму даних: С, APL, UC, HPL. PARLOG є паралельною версією мови Prolog. Erland – паралельна мова для застосувань в режимі реального часу. Maisie - мова, яка базується на С. Scheme – один з діалектів Lisp. Cilk – алгоритмічна багатопотокова мова.

Середовища розробки паралельних програм: aCe – середовище розробки і виконання програм в рамках моделі паралельних даних. ADAPTOR – система основана на мові HPF. Arjuna – об’єктно-орієнтована система програмування розподілених додатків. CODE – візуальна система паралельного програмування.

При розробці паралельних програм в рамках моделі паралелізму задач найчастіше використовуються спеціалізовані бібліотеки і системи паралельного програмування PVM і MPI. PVM існує для різних платформ, є реалізації для мов Java і Python, і включає різні засоби створення паралельних програм.

MPI – специфікація, перший варіант якої був розроблений комітетом MPIF (Message Passing Interface Forum) в 1994 р., яка описує основні особливості і синтаксис прикладного програмного інтерфейсу паралельних програм. Хоча MPI не властиві певні хороші властивості PVM, але ця специфікація базується на погоджених стандартах і найчастіше використовується для створення паралельних програм. Вона використовується з мовами C, C++, FORTRAN. Є кілька, вільно розповсюджуваних, реалізацій MPI для різних платформ: MPICH, LAM, CHIMP, NT-MPICH, WMPI, MacMPI [8].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: