Сазанова С. В. ПАРАЛЕЛЬНІ ОБЧИСЛЕННЯ

Категорія: Простір і час сучасної науки (22-24.04.2013р), Сучасні інформаційні технології

студентка Сазанова Світлана Валеріївна

Національний технічний університет України «Київський політехнічний інститут»

ПАРАЛЕЛЬНІ ОБЧИСЛЕННЯ

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

Паралельні комп'ютери можна умовно класифікувати відповідно до рівня, на якому обладнання підтримує паралелізм. Є кілька різних форм паралельних обчислень: на бітовому рівні, рівні інструкцій, рівні даних і паралелізм завдань. Спеціалізовані паралельні комп'ютерні архітектури іноді використовується поряд з традиційними процесорами, для прискорення виконання конкретних завдань. [1]

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

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

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

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

Підзадачі в паралельної програми часто називають потоками.

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

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

Не всяке розпаралелювання призводить до прискорення. Коли завдання розділяється на все більше і більше потоків, ці потоки витрачають все більшу частину свого часу на спілкування один з одним. Зрештою, накладні витрати від спілкування домінують над часом вирішення проблеми, і подальше розпаралелювання (тобто, поділ навантаження на ще більше ниток), швидше зростає, ніж зменшується кількість часу, необхідне для завершення. Це називається паралельним спадом.

Паралельні мови програмування та паралельні комп'ютери повинні мати узгоджену модель (також відома як модель пам'яті). Узгоджена модель визначає правила, за якими здійснюються операції в пам'яті комп'ютера і одержується результат. [1]

Існують такі види паралелізму:

• паралелізм на рівні бітів;

• паралелізм на рівні команд – процес об’єднання команд в групи, які виконуються паралельно;

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

Паралельні обчислювальні системи мають труднощі з кешами, які можуть зберігати одне й теж значення більш ніж в одному місці. Ці комп'ютери вимагають систему когерентності кеша, яка відстежує кешовані значення та очищує їх, забезпечуючи тим самим правильне виконання програми. Шина стеження – одним з найбільш поширених методів для відстеження значення, до яких здійснюється доступ (тому вони повинні бути видалені). Проектування великих, високопродуктивних систем когерентності кешей є дуже складною проблемою в комп'ютерній архітектурі. В результаті, розділена пам'ять комп’ютерних архітектур не масштабує як система з розподіленою пам’яттю.

Література:

1. Wikipedia: parallel computing [Електронний Ресурс] – Режим доступу до статті: http://en.wikipedia.org/wiki/Parallel_computing.

 

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Коментар:
Введите код: *

Карта сайту

^