Контрольна робота

Паралельні обчислення з використанням MPI


Зміст

1. Введення в паралельні обчислення

2. Що таке MPI/MPICH?

3. MPI у прикладах

3.1 Найпростіша MPI-програма

3.2 Обмін повідомленнями

3.3 Колективний обмін даними

3.4 Паралельний введення-виведення

4. Додаток

Література/посилання

Завдання


1. Введення в паралельні обчислення

Основна ідея розпаралелювання обчислень – мінімізація часу виконання задачі за рахунок розподілу навантаження між декількома обчислювальними пристроями. Цими «обчислювальними пристроями» можуть бути як процесори одного суперкомп'ютера, так і кілька комп'ютерів рангом поменше, обєднаних за допомогою комунікаційної мережі в єдину обчислювальну структуру – кластер.

Паралельна модель програмування сильно відрізняється від звичайної – послідовної. Існують дві моделі паралельного програмування: модель паралелізм даних і модель паралелізму задач. Модель паралелізми даних має на увазі незалежну обробку даних кожним процесом (наприклад, векторні операції з масивами). Модель паралелізами задач передбачає розбивка основної задачі на трохи щодо самостійних підзадач, кожна з яких виконується окремо й обмінюється даними з іншими. Це більш трудомісткий, у порівнянні з паралелізмом даних, підхід. Перевагою є велика гнучкість і велика воля, надана програмісту в розробці програми, що ефективно використовує ресурси паралельної системи. При цьому можуть застосовуватися спеціалізовані бібліотеки, що беруть на себе всі «організаційні» задачі. Приклади таких бібліотек: MPI (Message Passing Interface) і PVM (Parallel Virtual Machine).


2. Що таке MPI/MPICH?

При розробці паралельних програм виникають специфічні для даної моделі обчислень проблеми сугубо технічного характеру: забезпечення комунікацій між підзадачами, забезпечення надійності й ефективності цих комунікацій, дозвіл проблем зв'язаних із загальним доступом до поділюваних ресурсів та інше. Для рішення цих проблем можна реалізувати власні методи, а можна використовувати вже готові стандарти/специфікації/бібліотеки. MPI – «Інтерфейс передачі повідомлень» - це специфікація, що була розроблена в 1993-1994 роках групою MPI Forum (http://www.mpi-forum.org),і забезпечує реалізацію моделі обміну повідомленнями між процесами. Остання версія даної специфікації MPI-2. У моделі програмування MPI програма породжує кілька процесів, взаємодіючих між собою за допомогою звертання до підпрограм прийому і передачі повідомлень.

Звичайно, при ініціалізації MPI-програми створюється фіксований набір процесів, причому (що, утім, необов'язково) кожний з них виконується на своєму процесорі. У цих процесах можуть виконуватися різні програми, тому MPI-модель іноді називають MPMD-моделлю (Multiple Program, Multiple Data), на відміну від SPMD (Single Program…)моделі, де на кожному процесорі виконуються тільки однакові задачі. MPI підтримує двохточкові і глобальні, синхронні й асинхронні, блокуючі і типи комунікацій, що неблокують. Спеціальний механізм – комунікатор – ховає від програміста внутрішні комунікаційні структури. Структура комунікацій може змінюватися протягом часу життя процесу, але кількість задач повинна залишатися постійним (MPI-2 уже підтримує динамічна зміна числа задач).

Специфікація MPI забезпечує переносимість програм на рівні вихідних кодів і велику функціональність. Підтримується робота на гетерогенних кластерах і симетричних мультипроцесорних системах. Не підтримується, як уже відзначалося, запуск процесів під час виконання MPI-програми. У специфікації відсутні опису паралельного введення-висновку і налагодження програм – ці можливості можуть бути включені до складу конкретної реалізації MPI у виді додаткових пакетів і утиліт. Сумісність різних реалізацій не гарантується.

Важливою властивістю паралельної програми є детермінізм – програма повинна завжди давати той самий результат для того самого набору вхідних даних. Модель передачі повідомлень, загалом даною властивістю не володіє, оскільки не визначений порядок одержання повідомлень від двох процесів третім. Якщо ж один процес послідовно посилає кілька повідомлень іншому процесу, MPI гарантує, що одержувач одержить їхній саме в тім порядку, у якому вони були відправлені. Відповідальність за забезпечення детермінованого виконання програми лягає на програміста (з цього приводу див. приклад 3).

MPICH – MPI Chameleon – одна з реалізацій MPICH яка підтримує роботу на великому числі платформ із різними комунікаційними інтерфейсами, у т.ч. і TCP/IP.

Основні особливості MPICH v 1.2.2:

повна сумісність зі специфікацією MPI-1;

наявність інтерфейсу в стилі MPI-2 з функціями для мови C++ зі специфікації MPI-1;

наявність інтерфейсу з процедурами мови FORTRAN-77/90;

є реалізація для Windows NT (несумісна з UNIX-реалізацією);

підтримка великого числа архітектур, у т.ч. кластерів, SMP і т.д.;

часткова підтримка MPI-2;

часткова підтримка паралельного введення-висновку – ROMIO;

наявність засобів трасування і протоколювання (SLOG-based);

наявність засобів візуалізації продуктивності паралельних програм (upshot і jumpshot);

наявність у складі MPICH тестів продуктивності і перевірки функціонування системи.

Недоліки MPICH – неможливість запуску процесів під час роботи програми і відсутність засобів моніторингу за поточним станом системи.

До складу MPICH входять бібліотечні і заголовні файли, що реалізують біля сотні підпрограм. Ми будемо розглядати реалізацію MPICH.NT 1.2.4 для Windows NT.



Информация о работе «Паралельні обчислення з використанням MPI»
Раздел: Информатика, программирование
Количество знаков с пробелами: 47464
Количество таблиц: 3
Количество изображений: 11

Похожие работы

Скачать
25662
1
0

... і окремих процесів. Виробничий цикл складного виробу дорівнює найбільшій сумі циклів взаємозв'язаних послідовних процесів. 3. Економічне значення і способи скорочення виробничого циклу. Виробничий цикл є важливим показником рівня організації виробничого процесу, що істотно впливає на його ефективність. Скорочення виробничого циклу зменшує незавершене виробництво і відповідно оборотні кошти пі ...

0 комментариев


Наверх