Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсова Соколюк Наталя / Курсова_комп_сис.doc
Скачиваний:
49
Добавлен:
16.02.2016
Размер:
399.36 Кб
Скачать

Розділ 1. Основні поняття

Найбільш поширеною технологією програмування для кластерних систем і паралельних комп'ютерів з розподіленою пам'яттю в даний час є технологія MPI. Основним способом взаємодії паралельних процесів в таких системах є передача повідомлень один одному. Це і відображено в назві даної технології - Message Passing Interface (інтерфейс передачі повідомлень). Стандарт MPI фіксує інтерфейс, який має дотримуватися як системою програмування на кожній обчислювальної платформі, так і користувачем при створенні своїх програм. MPI підтримує роботу з мовами Фортран і Сі. Повна версія інтерфейсу містить опис більше 125 процедур і функцій.

Інтерфейс MPI підтримує створення паралельних програм в стилі MIMD (Multiple Instruction Multiple Data), що має на увазі об'єднання процесів з різними вихідними текстами. Однак писати і налагоджувати такі програми дуже складно, тому на практиці програмісти, набагато частіше використовують SPMD-модель (Single Program Multiple Data) паралельного програмування, в рамках якої для всіх паралельних процесів використовується один і той же код. В даний час все більше і більше реалізацій MPI підтримують роботу з так званими "нитками".

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

Для локалізації взаємодії паралельних процесів програми можна створювати групи процесів, надаючи їм окрему середовище для спілкування - комунікатор. Склад утворених груп довільний. Групи можуть повністю збігатися, входити одна в іншу, не перетинатися або перетинатися частково. Процеси можуть взаємодіяти тільки всередині деякого комунікатора, повідомлення, відправлені в різних комунікаторах, не перетинаються і не заважають один одному. Комунікатори мають в мові Фортран тип INTEGER (в мові Сі - зумовлений тип MPI Comm).

1. Загальні питання розв’язку "великих задач"

Під терміном "великі задачі" зазвичай розуміють проблеми, вирішення яких вимагає не тільки побудови складних математичних моделей, але і проведення величезного, на багато порядків перевищують характерні для програмованих електронно-обчислювальних машин, кількості обчислень. Тут застосовують з відповідними ресурсами електронно-обчислювальні машини - розмірами оперативної та зовнішньої пам'яті, швидкодією ліній передачі інформації та ін.

Верхня межа кількості обчислень для "великих задач" визначається лише продуктивністю існуючих на даний момент обчислювальних систем. При "прогоні" обчислювальних задач в реальних умовах ставиться не питання "вирішити задач взагалі", а "вирішити за прийнятний час" (годинник / десятки годин).

2. Сучасні задачі науки і техніки, необхідні для розв’язку суперкомп’ютерних потужностей

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

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

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

  • Передбачення погоди, клімату і глобальних змін в атмосфері;

  • Науки про матеріали;

  • Побудова напівпровідникових приладів;

  • Надпровідність;

  • Розробка фармацевтичних препаратів;

  • Генетика людини;

  • Астрономія;

  • Транспортні задачі великої розмірності;

  • Гідро і газодинаміка;

  • Керований термоядерний синтез;

  • Розвідка нафти і газу;

  • Обчислювальні задачі наук про світовий океан;

  • Розпізнавання і синтез мови, розпізнавання зображень.

Необхідно відзначити, що існують аргументи проти широкого практичного застосування паралельних обчислень:

1. Паралельні обчислювальні системи надмірно дороги. За підтверджується практикою законом Гроша, продуктивність комп'ютера зростає пропорційно квадрату його вартості; внаслідок набагато вигідніше отримати необхідну обчислювальну потужність придбанням одного продуктивного процесора, ніж використання декількох менш швидкодіючих процесорів.

Контраргумент. Зростання швидкодії послідовних електронно-обчислювальних машин не може тривати нескінченно, комп'ютери піддаються швидкому моральному старінню і необхідні часті фінансові витрати на покупку нових моделей. Практика створення паралельних обчислювальних систем класу Beowulf ясно показала економічність саме цього шляху.

2. При організації паралелізму надмірно швидко ростуть втрати продуктивності. За гіпотезою Мінського (Marvin Minsky) досягається при використанні паралельної системи прискорення обчислень пропорційно двійковому логарифму від числа процесорів (при 1000 процесорах можливе прискорення виявляється рівним всього 10).

Контраргумент. Наведена оцінка прискорення вірна для розпаралелювання певних алгоритмів. Однак існує велика кількість завдань, при паралельному вирішенні яких досягається близьке до 100% використанню всіх наявних процесорів паралельної обчислювальної системи.

3. Послідовні комп'ютери постійно удосконалюються. За широко відомому закону Мура складність послідовних мікропроцесорів зростає вдвічі кожні 18 місяців, тому необхідна продуктивність може бути досягнута і на "звичайних" послідовних комп'ютерах.

Контраргумент. Аналогічний розвиток властиво і паралельним системам.

4. Однак застосування паралелізму дозволяє отримувати необхідне прискорення обчислень без очікування розробки нових більш швидкодіючих процесорів. Ефективність паралелізму сильно залежить від характерних властивостей паралельних систем. Всі сучасні послідовні електронно-обчислювальні машини працюють у відповідність з класичною схемою фон-Неймана; паралельні системи відрізняються суттєвим розмаїттям архітектури і максимальний ефект від використання паралелізму може бути отриманий при повному використанні всіх особливостей апаратури (наслідок - перенесення паралельних алгоритмів і програм між різними типами систем скрутний, а іноді і неможливий).

Контраргумент. При реально наявному розмаїтті архітектур паралельних систем існують і певні "усталені" способи забезпечення паралелізму. Інваріантність створюваного програмного забезпечення забезпечується за допомогою використання стандартних програмних засобів підтримки паралельних обчислень (програмні бібліотеки PVM, MPI, DVM та ін.) PVM та MPI використовуються в суперкомп'ютерах Cray-T3.

5. За десятиліття експлуатації послідовних електронно-обчислювальних машинах накопичено величезну програмне забезпечення, орієнтоване на послідовні електронно-обчислювальні машини; переробка його для паралельних комп'ютерів практично нереальна. Контраргумент. Якщо ці програми забезпечують вирішення поставлених завдань, то їх переробка взагалі не потрібна. Однак якщо послідовні програми не дозволяють отримувати вирішення завдань за прийнятний час або ж виникає необхідність вирішення нових завдань, то необхідна розробка нового програмного забезпечення і воно спочатку може реалізовуватися в паралельному виконанні.

6. Існує обмеження на прискорення обчислення при паралельній реалізації алгоритму в порівнянні з послідовною. Контраргумент. У самому справі, алгоритмів взагалі без (певної) частки послідовних обчислень не існує. Однак це суть властивість алгоритму і не має відношення до можливості паралельного розв'язання задачі взагалі. Необхідно навчитися застосовувати нові алгоритми, більш підходящі для вирішення завдань на паралельних системах. Таким чином, на кожне критичне міркування проти використання паралельних обчислювальних технологій знаходиться більш-менш істотний контраргумент.

Соседние файлы в папке курсова Соколюк Наталя