Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursovaya_rabota.docx
Скачиваний:
24
Добавлен:
21.09.2019
Размер:
564.8 Кб
Скачать

О деська державна академія холоду

ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

КАФЕДРА ІНФОРМАЦІЙНО-КОМУНІКАЦІЙНИХ ТЕХНОЛОГІЙ

КУРСОВА РОБОТА

по дисципліні: «Паралельні і розподілені обчислення»

Виконав студент

3 курсу групи 532

Михайлов Сергій

Науковий керівник

Бондаренко В.Г.

__________________________

підпис

Робота захищена:

«_____» ______________2012 г.

__________________________

підпис викладача

Оцінка _________________

ОДЕСА – 2012р.

Завдання

На курсову роботу студентові Михайлову Сергію.

1.Теоретична частина.

Варіант 3. Описати стандарти OpenMP i MPI, як основні засоби програмування для многопроцесорних систем.

2. Практична частина.

Завдання А. Варіант 7. Розробити програму паралельного розрахунку означеного інтеграла для функції з кроком дискретизації 0,00002.

Завдання Б. Варіант 3.Розробити паралельну програму множення квадратної матриці на квадратну матрицю.

Оглавление

ВВЕДЕННЯ 3

1.Теоретична частина. Варіант 3. Описати стандарти OpenMP i MPI, як основні засоби програмування для многопроцесорних систем. 7

1.1.OpenMР 7

1.1.1 Директиви OpenMP 9

1.2 MPI 19

2. Практична частина 24

2.1. Завдання А. Варіант 7. Розробити програму паралельного розрахунку означеного інтеграла для функції з кроком дискретизації 0,00002. 24

2.1.1. Метод рішення 24

2.1.2. Алгоритм і блок-схема роботи програми 27

2.1.3. Текст програми: 29

2.1.4. Таблиця і графік проведених експериментів. 32

2.1.5. Висновок 32

2.2. Завдання Б. Варіант 3. Розробка паралельної програми множення квадратної матриці на квадратну матрицю. 34

2.2.1. Постановка завдання 34

2.2.2. Послідовний алгоритм множення двох квадратних матриць 34

2.2.3. Текст програми 37

2.2.4. Результати обчислювальних експериментів 43

2.2.5. Висновки 44

ПЕРЕЛІК ПОСИЛАНЬ 45

Введення

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

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

Обчислювальний напрям вживання комп'ютерів завжди залишався основним двигуном прогресу в комп'ютерних технологіях. Не дивно тому, що як основна характеристика комп'ютерів використовується такий показник, як продуктивність - величина, що показує, яку кількість арифметичних операцій він може виконати за одиницю часу. Саме цей показник з найбільшою очевидністю демонструє масштаби прогресу, досягнутого в комп'ютерних технологіях. Так, наприклад, продуктивність одного з найперших комп'ютерів EDSAC складала всього біля 100 операцій в секунду, тоді як пікова продуктивність найпотужнішого на сьогоднішній день суперкомп'ютера Earth Simulator оцінюється в 40 трильйонів операций/сек. Тобто сталося збільшення швидкодії в 400 мільярдів разів! Неможливо назвати іншу сферу людської діяльності, де прогрес був би настільки очевидний і так великий.

Природно, що у будь-якої людини відразу ж виникає питання: за рахунок чого це виявилося можливим? Як не дивно, відповідь досить проста: зразкове 1000-кратне збільшення швидкості роботи електронних схем і максимально широке розпаралелювання обробки даних.

Ідея паралельної обробки даних як потужного резерву збільшення продуктивності обчислювальних апаратів була висловлена Чарльзом Беббіджем приблизно за сто років до появи першого електронного комп'ютера. Проте рівень розвитку технологій середини 19-го століття не дозволив йому реалізувати цю ідею. З появою перших електронних комп'ютерів ці ідеї неодноразово ставали відправною крапкою при розробці самих передових і продуктивних обчислювальних систем. Без перебільшення можна сказати, що вся історія розвитку високопродуктивних обчислювальних систем - це історія реалізації ідей паралельної обробки на тому або іншому етапі розвитку комп'ютерних технологій, природно, у поєднанні із збільшенням частоти роботи електронних схем.

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

  • персональні комп’ютери (Personal Computer – PC);

  • робочі станції (WorkStation - WS);

  • суперкомп’ютери (Supercomputer – SC);

  • кластерні системи.

Ця умовність розподілення пов’язана в першу чергу з швидким прогресом в розвитку мікроелектронних технологій.

Персональні комп’ютери. Це комп’ютер, призначений для експлуатації одним користувачем, тобто для особистого використання. До ПК умовно можна віднести також і будь-який інший комп’ютер, використовуваний конкретною людиною в якості свого особистого комп’ютера. Персональним комп’ютером називають однопроцесорну систему, що використовує процесори Intel або AMD і що працює під управлінням операційних систем Microsoft Windows та інших.

Робочі станції. Робоча станція, як місце фахівця, є повноцінний комп’ютер або комп’ютерний термінал (пристрої вводу/виводу, відокремлені і часто віддалені від керуючого комп’ютера), набір необхідного програмного забезпечення, по необхідності доповнюється допоміжним обладнанням. Це найчастіше комп’ютери, які містять від одного до чотирьох RISC процесорів (RISC (Restrictes instruction set computer - комп’ютер із спрощеним набором команд) – архітектура процесора, в якій швидкодія збільшується за рахунок спрощення команд, щоб їх декодування було простіше, а час використання – коротше) і розрахованими на багато користувачів ОС, що відносяться до сімейства OC UNIX.

Суперкомп’ютери . Суперкомп’ютер – обчислювальна машина, значно перевищує за своїми технічними параметрами більшість існуючих комп’ютерів. Як правило, сучасні суперкомп’ютери представляють собою велику кількість високопродуктивних серверних комп’ютерів, з’єднаних один з одним локальною високошвидкісною магістраллю, для досягнення максимальної продуктивності у рамках підходу розпаралелювання обчислювальної задачі.

Кластерні системи. З декількох процесорів і загальної для них пам’яті формується обчислювальний вузол. Якщо отриманої обчислювальної потужності не достатньо, то об’єднується декілька вузлів високошвидкісними каналами. За таким принципом побудовані CRAY, SV1, HP Exemplar, SUN, останні моделі IBM SP2. Кластерні технології стали дешевою альтернативою суперкомпютерів. Сьогодні не складає великих труднощів створити невелику кластерну систему, об’єднавши обчислювальні потужності комп’ютерів окремої лабораторії або навчального класу.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]