Page 199 - 6571
P. 199
грамний код, представлений у вигляді виконуваної програми, має
бути доступний у момент запуску паралельної програми на усіх
використовуваних процесорах. Початковий програмний код для
виконуваної програми розробляється на алгоритмічних мовах C
або Fortran із застосуванням тієї або іншої реалізації бібліотеки
MPI.
Кількість процесів і число використовуваних процесорів ви-
значається у момент запуску паралельної програми засобами се-
редовища виконання MPI-програм і в ході обчислень не може мі-
нятися без застосування спеціальних засобів динамічного поро-
дження процесів і керування ними, що з’явилися в стандарті MPI
версії 2.0. Усі процеси програми послідовно пронумеровані від 0
до p-1, де p є загальною кількістю процесів. Номер процесу на-
зивається рангом процесу.
Основу MPI складають операції передачі повідомлень. Серед
передбачених у складі MPI функцій розрізняються парні (point-to-
point) операції між двома процесами і колективні (collective) ко-
мунікаційні дії для одночасної взаємодії декількох процесів.
Для виконання парних операцій можуть використовуватися
різні режими передачі, серед яких синхронний, блокуючий та ін.
Процеси паралельної програми об’єднуються в групи. Іншим
важливим поняттям MPI, що описує набір процесів, є поняття
комунікатора. Під комунікатором в MPI розуміється спеціально
створюваний службовий об’єкт, який об’єднує у своєму складі
групу процесів і ряд додаткових параметрів (контекст), викорис-
товуваних при виконанні операцій передачі даних.
Парні операції передачі даних виконуються тільки для про-
цесів, що належать одному і тому ж комунікаторові. Колективні
операції застосовуються одночасно для усіх процесів одного ко-
мунікатора. Як результат, вказівка використовуваного комуніка-
тора є обов’язковою для операцій передачі даних в MPI.
В ході обчислень можуть створюватися нові і видалятися іс-
нуючі групи процесів і комунікатори. Один і той же процес може
належати різним групам і комунікаторам. Усі наявні в паралель-
ній програмі процеси входять до складу створюваного за замов-
чуванням комунікатора з ідентифікатором MPI_COMM_WORLD.
У версії 2.0 стандарту з’явилася можливість створення глоба-
льних комунікаторів (intercommunicator), що об’єднують в одну
198