Ноу Інти, лекція, класифікація сучасних додатків і багатоядерних систем

Анотація: Дається приблизне розбиття додатків на класи / кластери відповідно до їх вимог. Обговорюються питання і підходи до класифікації багатоядерних процесорів.

Сфери застосування багатоядерних процесорів

Можна виділити кілька класів додатків, які вимагають значних обчислювальних ресурсів і можуть бути співвіднесені з терміном "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-ядра.

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

Також необхідно передбачити доступ до пам'яті, що і ефективні комунікації між ядрами.

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

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

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

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

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

короткі підсумки

Можна виділити приблизно п'ять типів додатків, в залежності від їх вимог до обчислювальної системи: обробка великих масивів даних; високопродуктивні обчислення, в тому числі в реальному часі; сервери додатків; веб-сервіси; обчислювальні завдання.

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

Основою при класифікації багатоядерних процесорів залишається класифікація Флінна для паралельних обчислювальних систем.

Контрольні питання

  1. Які основні класи сучасних додатків?
  2. Які основні ознаки, що застосовуються при класифікації багатоядерних процесорів?

вправи

  1. Оцініть параметри прикладного програмного забезпечення, найбільш часто вами використовуваного.