Page 155 - 4868
P. 155
153 Ошибка! Стиль не определен.
ЛЕКЦІЯ 21. ОСНОВИ РОЗРОБКИ MPI-ПРОГРАМ
21.1. Вступ домови програмуванняMPI
У обчислювальних системах з розподіленою пам’яттю процесори
працюють незалежно один від одного. Для організації паралельних
обчислень в таких умовах необхідно мати можливість розподіляти
обчислювальне навантаження і організувати інформаційну взаємодію
(передачу даних) між процесорами.
Вирішення усіх перерахованих питань і забезпечує інтерфейс передачі
даних (message passing interface – MPI).
У загальному випадку, для розподілу обчислень між процесорами
необхідно проаналізувати алгоритм рішення задачі, виділити інформаційно
незалежні фрагменти обчислень, провести їх програмну реалізацію і потім
розмістити отримані частини програми на різних процесорах. У рамках MPI
прийнятий простіший підхід – для вирішення поставленого завдання
розробляється одна програма і ця єдина програма запускається одночасно на
виконання на усіх наявних процесорах. При цьому для того, щоб уникнути
ідентичності обчислень на різних процесорах, можна, по-перше, підставляти
різні дані для програми на різних процесорах, а по-друге, використати наявні
в MPI засобу для ідентифікації процесора, на якому виконується програма
(тим самим надається можливість організувати відмінності в обчисленнях
залежно від використовуваного програмою процесора).
Подібний спосіб організації паралельних обчислень отримав
найменування моделі «одна програма декілька процесів» ( single program
multiple processes або SPMP).
Для організації інформаційної взаємодії між процесорами в
найпростішому випадку досить операцій прийому і передачі даних (при
цьому, звичайно, повинна існувати технічна можливість комунікації між
процесорами – канали або лінії зв’язку ). У MPI існує велика
кльківстьоперацій передачі даних. Саме це є найбільш сильною стороною
MPI (про це, зокрема, свідчить і сама назва MPI).
Слід зазначити, що спроби створення програмних засобів передачі даних
між процесорами почали робитися практично відразу з появою локальних
комп’ютерних мереж. Проте подібні засоби часто були неповними і,
найголовніше, були несумісними. Таким чином, одна з найсерйозніших
проблем в програмуванні – переносимість програм при перекладі
програмного забезпечення на інші комп’ютерні системи – проявлялася при
розробці паралельних програм в максимальній мірі. Як результат, вже з 90-х
років стали робитися зусилля із стандартизації засобів організації передачі
повідомлень у багатопроцесорних обчислювальних системах. Початком
робіт, що безпосередньо привели до появи MPI, послужило проведення
робочої наради щодо стандартів для передачі повідомлень в середовищі
розподіленої пам’яті (the Workshop on Standards for Message Passing in a
Distributed Memory Environment, Williamsburg, Virginia, USA, April 1992). За