Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки
Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Информатика, программирование » Паралельні обчислення з використаних MPI

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

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

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


Зміст

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

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

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

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

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

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

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

4. Додаток

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

Завдання


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

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

паралельних модель програмування сильно відрізняється від звічайної - Послідовної. Існують Дві Моделі паралельного програмування: модель паралелізм даніх и модель паралелізму задач. Модель паралелізмі даніх має на увазі незалежну обробка даніх шкірних процесом (Наприклад, векторні Операції з масивами). Модель паралелізамі завдань передбачає розбівка ОСНОВНОЇ Задачі на Трохи Щодо самостійніх підзадач, шкірні з якіх віконується Окрема ї обмінюється данімі з іншімі. Це більш трудомісткій, у порівнянні з паралелізмом даніх, підхід. Переваги є велика гнучкість и велика воля, Надал програмісту в розробці програм, Що ефективності вікорістовує Ресурси паралельної системи. При цьому можут застосовуватіся спеціалізовані бібліотекі, Що беруть на себе ВСІ В«ОрганізаційніВ» Задачі. Приклади таких бібліотек: MPI (Message Passing Interface) i PVM (Parallel Virtual Machine).


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

При розробці паралельних програм вінікають спеціфічні для даної Моделі обчисления проблема суто ТЕХНІЧНОГО характером: забезпечення комунікацій Між підзадачамі, забезпечення надійності й ефектівності ціх комунікацій, Дозвіл проблем зв'язаних Із загально доступом до поділюваніх ресурсів та Інше. Для Рішення ціх проблем можна реалізуваті власні методи, а можна вікорістовуваті Вже готові стандарти/спеціфікації/бібліотекі. MPI - В«Інтерфейс передачі повідомлень В»- ції спеціфікація, Що Була розроблено у 1993-1994 роках Груп MPI Forum (.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.


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

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

Мі почнемо наше Знайомство з MPI з Вивчення найпростішої програми:

===== Example1.cpp =====

# include // очевидно ;)

# include

int main (int argc, char * argv [])

{

int myrank, size;

MPI_Init (& argc, & argv);// Ініціалізація MPI

MPI_Comm_size (MPI_COMM_WORLD, & size);// Розмір комунікатора

MPI_Comm_rank (MPI_COMM_WORLD, & myrank);// Одержуємо наш номер

printf ("Proc% d of% d n", myrank, size);

MPI_Finalize ();// Фіналізація MPI

puts ("Done.");

return 0;

}

===== Example1.cpp =====

Перед викликом будь-якої процедури MPI, потрібно віклікаті ініціалізацію MPI_Init, перед ЦІМ викликом Може знаходітіся Тільки виклик MPI_Initialized, призначення Якого очевидно. MPI_Init крім Усього іншого створює глобальний Комунікатор MPI_COMM_WORLD, через которий буде проходити Обмін повідомленнями. Область взаємодії комунікатора MPI_COMM_WORLD - Усі процеси даної Програми. ЯКЩО є необхідність у розбівці області взаємодії на більш дрібні сегменти (частково-шірокомовні розсілання), вікорістовуються Виклики MPI_Comm_dup/create/split/etc (тут не розглядаються). Розмір комунікатора, одержуваній викликом MPI_Comm_size - число процесів у ньому. Розмір комунікатора MPI_COMM_WORLD - Загальне число процесів. Коженов процес має Свій унікальній (у рамках комунікатора!) номер - ранг. Ранги процесів у контекстах різніх комунікаторів можут розрізнятіся. Після виконан Всіх обмінів повідомленнями в Програмі повинності розташовуватіся виклик MPI_Finalize () - процедура відаляє ВСІ структури даніх MPI и робіть Інші необхідні дії. Програміст повинною сам подбаті про ті, щоб до моменту Виклики MPI_Finalize Усі пересілання даніх булі довершені. Після виконан MPI_Finalize виклик будь-яких, крім MPI_Initialized, процедур (навіть MPI_Init!) Неможливо. MPI_Initialized у даного випадка буде показуваті, візівал-ли процес MPI_Init. Отже, вже стало ясно, Що наша программа віводіть Повідомлення від усіх породженіх нею процесів. Приклад вис...


Страница 1 из 6Следующая страница

Друкувати реферат
Замовити реферат
Товары
загрузка...
Наверх Зворотнiй зв'язок