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

3. Паралельна обробка даних

3.1 Принципова можливість паралельної обробки

Практично всі розроблені до теперішнього часу алгоритми є послідовними. Наприклад, при обчисленні виразу a + b × c, спочатку необхідно виконати множення і тільки потім виконати додавання. Якщо в електронно-обчислювальних машин присутні вузли додавання і множення, які можуть працювати одночасно, то в даному випадку вузол складання буде простоювати в очікуванні завершення роботи вузла множення. Можна довести твердження, яке у тому, що можливо побудувати машину, яка заданий алгоритм буде обробляти паралельно. Можна побудувати m процесорів, які при одночасній роботі видають потрібний результат за один-єдиний такт роботи обчислювача.

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

3.2 Абстрактні моделі паралельних обрахунків

Модель паралельних обчислень забезпечує високорівневий підхід до визначення характеристик і порівнянні часу виконання різних програм, при цьому абстрагуються від апаратного забезпечення і деталей виконання. Першою важливою моделлю паралельних обчислень з'явилася машина з паралельним випадковим доступом (PRAM - Parallel Random Access Machine), яка забезпечує абстракцію машини з пам'яттю, що розділяється (PRAM є розширенням моделі послідовної машини з довільним доступом RAM - Random Access Machine). Модель BSP (Bulk Synchronous Parallel, масова синхронна паралельна) об'єднує абстракції як розділеної, так і розподіленої пам'яті. Вважається, що всі процесори виконують команди синхронно; у разі виконання однієї і тієї ж команди PRAM є абстрактною SIMD-машиною, (SIMD - Single Instruction stream / Multiple Data stream - одиночний потік команд поряд з множинним потоком даних), однак процесори можуть виконувати і різні команди. Основними командами є зчитування з пам'яті, запис в пам'ять і звичайні логічні і арифметичні операції.

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

Базова модель PRAM підтримує конкурентні (в даному контексті паралельні) зчитування та запис. Відомі підмоделі PRAM, що враховують правила, що дозволяють уникнути конфліктних ситуацій при одночасному зверненні декількох процесорів до загальної пам'яті. Моделювати схеми з функціональних елементів за допомогою паралельних машин з довільним доступом (PRAM) дозволяє теорема Брента. В якості функціональних елементів можуть виступати як 4 основних (здійснюють логічні операції NOT, AND, OR, XOR - заперечення, логічне І, логічне АБО і виключає АБО відповідно), більш складні NAND і NOR (І-НЕ і АБО-НЕ), так і будь-якої складності.

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

Рис 1.1. Моделювання схеми розміру 15, глибини 5 з двома процесорами за допомогою паралельної машини з довільним доступом (PRAM - машина)

На рисунку 1.1 наведено результат моделювання схеми розміром (загальна кількість процесорів) n = 15 при глибині схеми (максимальне число елементів на кожному з рівнів глибини) d = 5 із кількістю процесорів p = 2 (одночасно модельований елементи об'єднані в групи прямокутними областями, причому для кожної групи зазначений крок, на якому моделюються її елементи; моделювання відбувається послідовно зверху вниз у порядку зростання глибини, на кожній глибині по р штук за раз). Згідно теореми Брента моделювання такої схеми займе не більше ceil (15/2 +1) = 9 кроків.

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