Анотація: Дається приблизне розбиття додатків на класи / кластери відповідно до їх вимог. Обговорюються питання і підходи до класифікації багатоядерних процесорів.
Сфери застосування багатоядерних процесорів
Можна виділити кілька класів додатків, які вимагають значних обчислювальних ресурсів і можуть бути співвіднесені з терміном "HPC-додатків" [5].
Додатки, що обробляють великі файли даних:
- фінансове моделювання;
- наукові і технічні розрахунки;
- реклама, яка на сервері додатка, які обслуговують безліч користувачів настільних машин, або тонких клієнтів.
Програми, що працюють з великими масами транзакцій / користувачів:
Якщо розглянути дані класи додатків з точки зору можливостей розпаралелювання або організації багатопотокового режиму (таблиця 2.1), можна отримати простір HPC-додатків (рис. 2.1) [6].
Було показано, що багатоядерні процесори дозволяють істотно знизити споживання енергії при збереженні продуктивності. Це, в свою чергу. відкриває нові області застосування:
Мал. 2.1. Приблизна класифікація задач високопродуктивних обчислень
Було показано, що багатоядерні процесори дозволяють істотно знизити споживання енергії при збереженні продуктивності. Це, в свою чергу. відкриває нові області застосування:
- компактні високопродуктивні пристрої з низьким тепловим випромінюванням;
- серверні приміщення, що дозволяють знизити витрату електроенергії і вимоги до кондиціонування повітря;
- рішення для мобільних ПК зі збільшеним часом автономної роботи батарей;
- рішення для дому та офісу, реалізація яких раніше була фізично неможлива при використанні процесорів попередніх поколінь.
Таблиця 2.1. Характеристика додатків різних типів з точки зору паралельних систем [6]
Забезпечення енергозберігаючої продуктивності, основа якої - перехід на багатоядерні обчислення, принесе вигоди практично для всіх платформ.
Основні класи багатоядерних процесорів (many-core, multi-core, MIMD, SIMD, SMP, MMP)
Як відомо, найбільш поширеним підходом є розпаралелювання "потоку команд" і / або "потоку даних". Розпаралелювання даних - це застосування однієї операції відразу до кількох елементів масиву даних. Паралелізм завдань передбачає розбиття обчислювального процесу на кілька самостійних підзадач (процесів, потоків), кожна з яких виконується на своєму ядрі (процесорі). Багатоядерні системи (відповідно до класифікації Флінна) можна віднести до так званим системам класу MIMD (Multiple Instruction - Multiple Data). в яких кілька програмних гілок виконуються одночасно і незалежно один від одного, але в певні моменти часу обмінюються даними
В основному представлені на сьогоднішній день процесори мають MIMD -Архітектура, але є також група процесорів, побудованих як SIMD-системи, - це так звані потокові або графічні процесори.
Серед багатоядерних процесорів до даного моменту можна виділити процесори, призначені в основному для вбудованих і мобільних додатків, в яких велика увага розробників було приділено засобам і методам зниження енергоспоживання, процесори для обчислювальних або графічних станцій, де питання енергоспоживання не настільки критичні, процесори і т. н. мейнстріму широкого призначення - націлені на використання в серверних, робочих станціях і персональних комп'ютерах.
Також можна класифікувати багатоядерні процесори з архітектури або структурі їх ядер.
Структура ядер важлива з точки зору програмування на нижньому рівні, в проектуванні і оптимізації додатків, визначає можливості процесора в плані обчислень. Більшість багатоядерних процесорів мають в своїй основі RISC-ядра; звичайно, є центральна група потужних процесссров з CISC -ядро, зустрічаються і MISC-ядра.
Можлива класифікація і по енергоспоживанню. Перед розробниками багатоядерних процесорів, як правило, крім завдань підвищення продуктивності і ефективності процесора стоять завдання зменшення потужності, що розсіюється при малому завантаженні процесора або під час його простою або очікування результатів обчислень від ядер процесора. У цій класифікації зручно виділити класи просто за абсолютним рівнем споживаної потужності і класи по способам управління енергоспоживанням.
Також необхідно передбачити доступ до пам'яті, що і ефективні комунікації між ядрами.
Наявність внутрикристальной пам'яті і її організація впливають на парадигму програмування, частоту звернень до зовнішньої пам'яті, а також визначають способи синхронізації програм і даних.
Однією з проблем, що стоять перед розробниками додатків для багатоядерних процесорів, - розподіл або передача даних між ядрами. Середовище передачі даних повинна володіти широкою смугою пропускання, малими часом затримки з'єднання і поширення даних. Пропускна здатність середовища передачі, її топологія вплинуть на продуктивність процесора на багатопотокових додатках, визначатимуть накладні витрати процесорного часу, затримки поширення даних.
Зовнішні інтерфейси визначають можливості взаємодії процесора з пам'яттю, зовнішніми пристроями, і можливості нарощування кількості процесорів.
При розгляді багатоядерних процесорів в основному користуються класифікацією Флінна. прийнятої для паралельних систем, з тією лише різницею, що в якості вузлів або машин виступають обчислювальні ядра, що знаходяться на одному кристалі або в одному корпусі.
Варто виділити також мультиядерні процесори - в цьому випадку передбачається, що ядра є високопродуктивними і їх відносно небагато; і багатоядерні процесори - на кристалі розташовується велика (від декількох десятків до декількох сотень) кількість обчислювальних ядер, що мають більш просту структуру, об'єднаних деякою мережевою інфраструктурою.
короткі підсумки
Можна виділити приблизно п'ять типів додатків, в залежності від їх вимог до обчислювальної системи: обробка великих масивів даних; високопродуктивні обчислення, в тому числі в реальному часі; сервери додатків; веб-сервіси; обчислювальні завдання.
Одне з явних переваг при переході на багатоядерні процесори - зниження енергоспоживання, що в підсумку позначається на вартості володіння обчислювальною системою.
Основою при класифікації багатоядерних процесорів залишається класифікація Флінна для паралельних обчислювальних систем.
Контрольні питання
- Які основні класи сучасних додатків?
- Які основні ознаки, що застосовуються при класифікації багатоядерних процесорів?
вправи
- Оцініть параметри прикладного програмного забезпечення, найбільш часто вами використовуваного.