Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Паралельні обчислювальні системи



План:


Введення

Не слід плутати з Розподілені обчислення.

Паралельні обчислювальні системи - це фізичні комп'ютерні, а також програмні системи, що реалізують той чи інший спосіб паралельну обробку даних на багатьох обчислювальних вузлах. [1]

Наприклад, для швидкої сортування масиву на двопроцесорній машині можна розділити масив навпіл і сортувати кожну половину на окремому процесорі. Сортування кожної половини може зайняти різний час, тому необхідна синхронізація.


1. Паралелізм

Ідея розпаралелювання обчислень заснована на тому, що більшість завдань може бути розділене на набір менших завдань, які можуть бути вирішені одночасно. Зазвичай паралельні обчислення вимагають координації дій. Паралельні обчислення існують в декількох формах: паралелізм на рівні бітів, паралелізм на рівні інструкцій, паралелізм даних, паралелізм завдань. Паралельні обчислення використовувалися багато років в основному у високопродуктивних обчисленнях, але останнім часом до них зріс інтерес внаслідок існування фізичних обмежень на зростання тактової частоти процесорів. Паралельні обчислення стали домінуючою парадигмою в архітектурі комп'ютерів, в основному у формі багатоядерних процесорів. [2]

Писати програми для паралельних систем складніше, ніж для послідовних [3], так як конкуренція за ресурси представляє новий клас потенційних помилок в програмному забезпеченні ( багів), серед яких стан гонки є найпоширенішою. Взаємодія і синхронізація між процесами представляють великий бар'єр для отримання високої продуктивності паралельних систем. В останні роки також стали розглядати питання про споживання електроенергії паралельними комп'ютерами. [4] Характер збільшення швидкості програми в результаті розпаралелювання пояснюється законом Амдала.


2. Типи паралелізму

2.1. Паралелізм на рівні бітів

Ця форма паралелізму заснована на збільшенні розміру машинного слова. Збільшення розміру машинного слова зменшує кількість операцій, необхідних процесору для виконання дій над змінними, чий розмір перевищує розмір машинного слова. До прикладу: на 8-бітному процесорі потрібно скласти два 16-бітових цілих числа. Для цього спочатку потрібно скласти нижні 8 біт чисел, потім скласти верхні 8 біт і до результату їх складання додати значення прапора переносу. Разом 3 інструкції. З 16-бітовим процесором можна виконати цю операцію однією інструкцією.

Історично 4-бітові мікропроцесори були замінені 8-бітними, потім з'явилися 16-бітові та 32-бітові. 32-бітові процесори довгий час були стандартом в повсякденних обчисленнях. З появою технології x86-64 для цих цілей стали використовувати 64-бітні процесори.


2.2. Паралелізм на рівні інструкцій

Комп'ютерна програма - це, по суті, потік інструкцій, які виконуються процесором. Але можна змінити порядок цих інструкцій, розподілити їх за групами, які будуть виконуватися паралельно, без зміни результату роботи всієї програми. Даний прийом відомий як паралелізм на рівні інструкцій. Просування в розвитку паралелізму на рівні інструкцій в архітектурі комп'ютерів відбувалися з середини 1980-х до середини 1990-х.

Класичний приклад п'ятиступінчастою конвеєра на RISC -машині (IF = вибірка інструкції, ID = декодування інструкції, EX = виконання інструкції, MEM = доступ до пам'яті, WB = запис результату в регістри).

Сучасні процесори мають багатоступінчастий конвеєр команд. Кожній ступені конвеєра відповідає певне дію, виконувану процесором в цій інструкції на цьому етапі. Процесор з N ступенями конвеєра може мати одночасно до N різних інструкцій на різному рівні закінченості. Класичний приклад процесора з конвеєром - це RISC -процесор з 5-ма ступенями: вибірка інструкції з пам'яті (IF), декодування інструкції (ID), виконання інструкції (EX), доступ до пам'яті (MEM), запис результату в регістри (WB). Процесор Pentium 4 має 35-тиступеневою конвеєр. [5]

П'ятиступінчастий конвеєр суперскалярної процесора, здатний виконувати дві інструкції за цикл. Може мати по дві інструкції на кожній ступені конвеєра, максимум 10 інструкцій можуть виконуватися одночасно.

Деякі процесори, додатково до використання конвеєрів, володіють можливістю виконувати декілька інструкцій одночасно, що дає додатковий паралелізм на рівні інструкцій. Можлива реалізація даного методу за допомогою суперскалярної, коли інструкції можуть бути згруповані разом для паралельного виконання (якщо в них немає залежності між даними). Також можливі реалізації з використанням явного паралелізму на рівні інструкцій: VLIW і EPIC.


2.3. Паралелізм даних

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


2.4. Паралелізм завдань

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

2.5. Розподілені операційні системи

Розподілена ОС, динамічно і автоматично розподіляючи роботи з різних машинам системи для обробки, змушує набір мережевих машин обробляти інформацію паралельно. Користувач розподіленої ОС, взагалі кажучи, не має відомостей про те, на якій машині виконується його робота. [6]

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


Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Апплікатівние обчислювальні системи
Паралельні обчислення
Паралельні світи у фантастиці
Обчислювальні ресурси
Обчислювальні методи
Механічні обчислювальні машини
Відновлення системи
Соціотехніческіе системи
Оборонні системи
© Усі права захищені
написати до нас
Рейтинг@Mail.ru