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

6. Можливе прискорення при паралельних обрахунках (закон Амдаля)

Представляє інтерес оцінка величини можливого підвищення продуктивності з урахуванням якісних характеристик самої початково послідовної програми.

Рис 1.4. Схема до виводу закону Амдаля

Закон Амдаля (1967) пов'язує потенційне прискорення обчислень при розпаралелювання з часткою операцій, які виконуються апріорі послідовно. Нехай f (0 <f <1) - частина операцій алгоритму, яку розпаралелили не представляється можливим; тоді розпаралелена частина дорівнює (1-f); при цьому витрати часу на передачу повідомлень не враховуються, ts - час виконання алгоритму на одному процесорі (послідовний варіант), n - число процесорів паралельної машини.

При перенесенні алгоритму на паралельну машину час розрахунку розподілиться так:

  • f×ts – час виконання частини алгоритму, яку розпаралелити неможливо;

  • (1-f )×ts/n – час, витрачений на виконання розпаралеленої частини алгоритму.

Час tp, необхідний для розрахунку на паралельну машину з n процесорами, рівний tp=f×ts+(1-f)×ts/n .

Прискорення часу розрахунку при малої частки послідовної операцій (f << 1) можливо досягти (не більше ніж в n раз) прискорення обчислень (рисунок 1.4).

Рис. 1.5. Тривимірний графік, кількісно відображає залежність Амдаля

У разі f = 0,5 ні при якій кількості процесорів неможливо досягти S> 2! Зауважимо, що ці обмеження носять фундаментальний характер (їх можна обійти для заданого алгоритму), проте практична оцінка частки f послідовних операцій апріорі зазвичай неможлива. Таким чином, якісні характеристики самого алгоритму накладають обмеження на можливе прискорення при розпаралелювання. Наприклад, характерні для інженерних розрахунків алгоритми рахунки по послідовним формулами розпаралелювати погано (частина f значима), в той же час зводяться до задач лінійного програмування алгоритми розпаралелювати задовільно. Апріорно оцінити частку послідовних операцій f непросто. Однак можна спробувати формально використовувати закон Амдаля для розв'язання зворотної задачі визначення f по експериментальним даним продуктивності; це дає можливість кількісно судити про досягнуту ефективності розпаралелювання.

На рисунку 1.6 наведено результати експерименту на кластері SCI-MAIN НИВЦ МДУ на завданні множення матриць по стрічкової схемою (розмірність 103 × 103 дійсних чисел подвійної точності), експериментальні дані найкращим чином (використаний метод найменших квадратів) відповідають формулі Амдаля при f = 0,051. Закон Амдаля зручний для якісного аналізу проблеми розпаралелювання.

Рис. 1.6. Продуктивність обчислювальної кластерної системи на процедурі множення матриць (експеримент і розрахунок по формулі Амдаля)

Висновки

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

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