Page 157 - 4868
P. 157
155 Ошибка! Стиль не определен.
алгоритмічних мовах 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), що об’єднують в одну структуру пару
груп при необхідності виконання колективних операцій між процесами з
різних груп.
При виконанні операцій передачі повідомлень у функціях MPI
необхідно вказувати тип даних, що пересилаються. MPI містить великий
набір базових типів даних, багато в чому співпадаючих з типами даних в
алгоритмічних мовах C і Fortran. Крім того, в MPI є можливості створення
нових похідних типів даних для точнішого і коротшого опису вмісту
повідомлень, що пересилаються.
Як вже відзначалося раніше, парні операції передачі даних можуть бути
виконані між будь-якими процесами одного і того ж комунікатора, а в
колективній операції беруть участь усі процеси комунікатора. Логічна
топологія ліній зв’язку між процесами має структуру повного графа
(незалежно від наявності реальних фізичних каналів зв’язку між