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). За
   150   151   152   153   154   155   156   157   158   159   160