Page 196 - 6571
P. 196
3. Які обмеження притаманні вбудованим блокуванням у мові
Java?
4. Яким чином можна оголосити синхронізований блок
засобами мови Java?
5. У чому полягає суть процедури клієнтського блокування?
6. За допомогою яких методів у мові Java реалізовано
механізм міжпотокових комунікацій?
7. У чому полягає відмінність між викликами методів
notify() та notifyAll()?
8. Яке призначення ключового слова volatile у мові Java?
9. Яким чином ведуть себе поля та змінні оголошені із
ключовим словом final під час роботи з декількома потоками?
10. Які потокозахищені колекції визначені у мові Java Ви
знаєте?
ЛЕКЦІЯ 21
ОСНОВИ РОЗРОБКИ MPI-ПРОГРАМ
21.1 Вступ домови програмування MPI
У обчислювальних системах з розподіленою пам’яттю про-
цесори працюють незалежно один від одного. Для організації па-
ралельних обчислень в таких умовах необхідно мати можливість
розподіляти обчислювальне навантаження і організувати інфор-
маційну взаємодію (передачу даних) між процесорами.
Вирішення усіх перерахованих питань і забезпечує інтер-
фейс передачі даних (message passing interface – MPI).
У загальному випадку, для розподілу обчислень між проце-
сорами необхідно проаналізувати алгоритм рішення задачі, виді-
лити інформаційно незалежні фрагменти обчислень, провести їх
програмну реалізацію і потім розмістити отримані частини про-
грами на різних процесорах. У рамках MPI прийнятий простіший
підхід – для вирішення поставленого завдання розробляється од-
на програма і ця єдина програма запускається одночасно на вико-
нання на усіх наявних процесорах. При цьому, для того щоб уни-
кнути ідентичності обчислень на різних процесорах, можна, по-
перше, підставляти різні дані для програми на різних процесорах,
а по-друге, використати наявні в MPI засобу для ідентифікації
195