Вибір технології паралельного програмування є складною задачею, якщо прийняти до уваги, що тільки мов і систем розробки паралельних програм є понад 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].
|
|