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






