
- •Лабораторний практикум
- •Загальні методичні вказівки
- •Технології оперативної пам'яті
- •1.3 Постановка завдання
- •1.5 Контрольні запитання
- •2.3 Постановка завдання
- •2.5 Контрольні запитання
- •3.3 Постановка завдання
- •Основні риси risc-процесорів
- •Risc-процесори 3-го покоління
- •Структура процесорів Alpha: 21064, 21264
- •Порівняльні характеристики Alpha 21164 і 21264
- •4.3 Постановка завдання
- •Паралельна обробка даних на еом
- •Закон Амдала
- •5.3 Постановка завдання
- •5.5 Контрольні запитання
- •Лабораторна робота №6 сучасна архітектура обчислювальних систем
- •6.1 Мета роботи
- •6.2 Теоретичні відомості
- •Vliw архітектура
- •Архітектура ia-64
- •Опис ia-64
- •6.3 Постановка завдання
- •Лабораторна робота №7
- •7.3 Постановка завдання
- •7.5 Контрольні запитання
- •Лабораторна робота №8 визначення швидкодії обчислювальної системи
- •8.1 Мета роботи
- •8.2 Теоретичні відомості
- •Порівняння за швидкістю процесора обчислювальної системи
- •Оцінка обчислювальної системи за тестами
- •Приклади тестів швидкодії/ефективності обчислювальних систем
- •Рекомендації щодо виконання роботи
- •8.3 Постановка завдання
- •8.5 Контрольні запитання
- •Перелік рекомендованих джерел
- •В.Г. Хорошевский. Архитектура вычислительных систем/ в.Г. Хорошевский. – м.: мгту им. Баумана,2008 - 530 с.
4.3 Постановка завдання
Розробити алгоритм роботи з процесорами RISC-архитектури.
Написати довільну програму, яка використовується для тестування даної архітектури.
Протестувати розроблене програмне забезпечення.
На основі проведеного дослідження зробити висновки щодо ефективності даної програми та RISC-процесорів в цілому.
4.4 Зміст звіту
мета роботи;
теоретичні відомості;
тексти програм та відповідне програмне відображення;
результати обчислень на ЕОМ;
висновок.
4.5 Контрольні запитання
З чим пов'язана поява RISC-процесорів?
Основні особливості RISC-процесорів.
Назвіть фірми-розробники RISC процесорів.
Архітектурні особливості процесорів Alpha.
Архітектурні особливості процесора PA-8000.
Сфери застосування RISC-процесорів.
ЛАБОРАТОРНА РОБОТА №5
ПАРАЛЕЛЬНІ СИСТЕМИ
5.1 Мета роботи
Метою роботи є ознайомлення з основними класами паралельних систем, методами конвеєрної і паралельної обробки даних, набуття умінь і навиків правильної оцінки продуктивності суперкомп'ютера.
Триваліть роботи – 2 години
5.2 Теоретичні відомості
Паралельна обробка даних на еом
Основні ознаки, що характеризують супер-ЕОМ, наступні:
найвища продуктивність;
найсучасніший технологічний рівень (наприклад, GaAs-технологія);
специфічні архітектурні рішення, направлені на підвищення швидкодії (наприклад, наявність операцій над векторами);
ціна, звичайні понад 1-2 млн. доларів.
Пікова продуктивність суперкомп'ютера CRAY C90 з часом такту порядка 4 нс - близько 1 мільярда арифметичних операцій в секунду. Збільшення продуктивності відбувалося і за рахунок інших чинників, найважливішим серед яких є використання нових архітектурних рішень, зокрема - принципу паралельної обробки даних.
Паралельна обробка даних має два різновиди: конвейерность і паралельність.
Ідея конвеєрної обробки полягає у виділенні окремих етапів виконання загальної операції, причому так, щоб кожен етап, виконавши свою роботу, передавав би результат наступному, одночасно приймаючи нову порцію вхідних даних. Виграш в швидкості обробки даних виходить за рахунок поєднання раніше рознесених в часі операцій.
Паралельна обробка даних передбачає наявність декількох функціонально незалежних пристроїв.
Закон Амдала
Закон Амдала
S= 1/ [f + (1-f)/p]
де S - прискорення, f - доля операцій, які потрібно виконати послідовно, p - число процесорів.
Наслідок із закону Амдала: для того, щоб прискорити виконання програми в q разів, необхідно прискорити не менше чим в q разів і не менше чим (1-1/q) -у частину програми. Отже, якщо потрібно прискорити програму в 100 разів в порівнянні з її послідовним варіантом, то необхідно дістати неменше прискорення для не менше, ніж 99,99 % коду!
Класи паралельних систем
I. Векторно-конвеєрні комп'ютери (PVP). Мають MIMD-архитектуру (безліч інструкцій над безліччю даних).
Основні особливості:
конвеєрні функціональні пристрої;
набір векторних інструкцій в системі команд;
зачеплення команд (використовується як засіб прискорення обчислень).
Характерним представником даного напряму є сімейство векторно-конвеєрних комп'ютерів CRAY.
Розглянемо, наприклад, суперкомп'ютер CRAY Y-MP C90, що має наступні характеристики:
Максимальна конфігурація - 16 процесорів, час такту - 4,1 нс, що відповідає тактовій частоті майже 250 Мгц.
Ресурси процесора, що розділяються:
Оперативна пам'ять (ОП) розділяється всіма процесорами і секцією вводу/виводу, розділена на безліч банків, які можуть працювати одночасно.
Секція вводу/виводу. Комп'ютер підтримує три типи каналів з різною швидкістю передачі:
Low-Speed Channels - 6 Мбайт/с
High-Speed Channels - 200 Мбайт/с
Very High-Speed Channels - 1800 Мбайт/с
Секція міжпроцесорної взаємодії містить регістри і семафори, призначені для передачі даних і інформації, що управляє.
Обчислювальна секція процесора складається з:
регістрів (адресних, скалярних, векторних);
функціональних пристроїв;
мережі комунікацій.
Секція управління.
Команди вибираються з ОП блоками і заносяться в буфери команд.
Паралельне виконання програм.
Всі основні операції, що виконуються процесором, - звернення в пам'ять, обробка команд і виконання інструкцій - є конвеєрними.
II. Масивно-паралельні комп'ютери з розподіленою пам'яттю. Об'єднується декілька серійних мікропроцесорів, кожен зі своєю локальною пам'яттю, за допомогою деякого комунікаційного середовища.
Переваг в такої архітектури багато: якщо потрібна висока продуктивність, то можна додати ще процесорів; якщо обмежені фінанси або заздалегідь відома необхідна обчислювальна потужність, то легко підібрати оптимальну конфігурацію і так далі
Кожен процесор має доступ лише до своєї локальної пам'яті, а якщо програмі потрібно взнати значення змінної, розташованої в пам'яті іншого процесора, то задіюється механізм передачі повідомлень. Цей підхід дозволяє створювати комп'ютери, що включають тисячі процесорів.
Але ця архітектура має два істотних недоліки:
потрібне швидкодіюче комунікаційне устаткування, що забезпечує середовище передачі повідомлень;
при створенні програм необхідно враховувати топологію системи і спеціальним чином розподіляти дані між процесорами, аби мінімізувати число пересилок і об'єм даних, що пересилаються.
Остання обставина і заважає широкому впровадженню подібної архітектури.
До даного класу можна віднести комп'ютери Intel Paragon, IBM SP1, Parsytec, IBM SP2 і CRAY T3D.
Комп'ютери Cray T3D і T3E використовують єдиний адресний простір (загальна віртуальна пам'ять). По апаратному перериванню особливого випадку адресації ОС виконує пересилку сторінки з одного вузла на іншій. В кожного МП своя локальна пам'ять, але єдиний віртуальний адресний простір.
Чинники, що знижують продуктивність паралельних комп'ютерів:
Закон Амдала.
У таблиці. 5.1 показано, на яке максимальне прискорення роботи програми можна розраховувати залежно від частки послідовних обчислень і числа доступних процесорів.
Таблиця 5.1 – Залежність максимального прискорення від частки послідовних обчислень
Число ПЕ
|
Доля послідовних обчислень
|
||||
50 % |
25 % |
10 % |
5 % |
2 % |
|
2 |
1,33 |
1,60 |
1,82 |
1,90 |
1,96 |
8 |
1,78 |
2,91 |
4,71 |
5,93 |
7,02 |
32 |
1,94 |
3,66 |
7,80 |
12,55 |
19,75 |
512 |
1,99 |
3,97 |
9,83 |
19,28 |
45,63 |
2048 |
2,00 |
3,99 |
9,96 |
19,82 |
48,83 |
Час ініціалізації посилки повідомлення (латентність) і час передачі повідомлення по мережі.
Максимальна швидкість передачі досягається на великих повідомленнях, коли латентність, що виникає лише спочатку, не настільки помітна на фоні безпосередній передачі даних.
Можливість асинхронної посилки повідомлень і обчислень.
Якщо або апаратура, або програмне забезпечення не підтримують можливості проводити обчислення на тлі пересилок, то виникнуть неминучі накладні витрати, пов'язані з чеканням повного завершення взаємодії паралельних процесів.
Нерівномірне завантаження всіх процесорних елементів.
Якщо рівномірності немає, то частина процесорів простоюватимуть, чекаючи останніх, хоча у цей момент вони могли б виконувати корисну роботу.
Час чекання приходу повідомлення.
Для його мінімізації необхідно, аби один процес відправив необхідні дані якомога раніше, відклавши незалежну від них роботу на потім, а інший процес виконав максимум роботи, що не вимагає очікуваної передачі, перш ніж виходити на точку прийому повідомлення.
Реальна продуктивність одного процесора.
III. Паралельні комп'ютери із загальною пам'яттю (SMP). Вся оперативна пам'ять розділяється між декількома однаковими процесорами. Це знімає проблеми попереднього класу, але додає нові - число процесорів, що мають доступ до загальної пам'яті, не можна зробити великим. У даний напрям входять багато сучасних багатопроцесорних SMP-компьютеры або, наприклад, окремі вузли комп'ютерів HP Exemplar і Sun StarFire.
Основна перевага таких комп'ютерів - відносна простота програмування. За ситуації, коли всі процесори мають однаково швидкий доступ до загальної пам'яті, питання про те, який процесор які обчислення виконуватиме, не настільки принциповий, і значна частина обчислювальних алгоритмів, розроблених для послідовних комп'ютерів, може бути прискорена за допомогою розпаралелюючих і векторизуючих трансляторів. SMP-комп’ютери - це найбільш поширені зараз паралельні обчислювачі. Проте загальне число процесорів в SMP-системах, як правило, не перевищує 16, а їх подальше збільшення не дає виграшу через конфлікти при зверненні до пам'яті.
IV. Кластерна архітектура. За таким принципом побудовані CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, останні моделі IBM SP2 та інші.
Кластерна архітектура є комбінаціями попередніх трьох. З декількох процесорів (традиційних або векторно-конвеєрних) і загальної для них пам'яті формується обчислювальний вузол. Якщо отриманої обчислювальної потужності не вистачає, то об'єднується декілька вузлів високошвидкісними каналами. Часто створюються із загальнодоступних комп'ютерів на базі Intel і недорогих Ethernet-мереж під управлінням операційної системи Linux.
Технології паралельного програмування
Найбільшим досягненням в справі створення програмного забезпечення була стандартизація інтерфейсу передачі повідомлень MPI (Message Passing Interface). Набір функцій цього інтерфейсу увібрав в себе кращі риси своїх попередників. Основні переваги MPI:
підтримка декількох режимів передачі даних;
передбачає гетерогенні обчислення;
передача повідомлень, що типізуються;
побудова бібліотек - MPICH, LAM MPI;
наявність варіантів для мов програмування C/C++, Fortran;
підтримує колективні операції: широкомовну передачу, розбирання/збирання, операції редукції;
сумісність з багатопоточністю.
Оцінки продуктивності супер-ЕОМ
Більшість оцінних характеристик продуктивності супер-ЕОМ пов'язана з операціями обчислень над дійсними числами. До них відноситься пікова продуктивність (ПП), вимірювана в млн. операцій з плаваючою крапкою, які комп'ютер теоретично може виконати за 1 з (MFLOPS).
ПП - величина, практично не досяжна. Це пов'язано з проблемами заповнення функціональних конвеєрних пристроїв. Чим більший конвеєр, тим більше треба часу "ініціалізації" для того, щоб його заповнити. Такі конвеєри ефективні при роботі з довгими векторами. Тому для оцінки векторних супер-ЕОМ було введено таке поняття, як довжина напівпродуктивності - довжина вектора, при якій досягається половина пікової продуктивності.
Реальніші оцінки продуктивності базуються на часах виконання різних тестів. Самими хорошими тестами є реальні завдання користувача. Проте такі оцінки, по-перше, вельми специфічні, а по-друге, часто взагалі недоступні або відсутні. Тому зазвичай застосовуються більш універсальні тести.
Оскільки велику частину часу виконання програм зазвичай займають цикли, інколи саме вони застосовуються як тести, наприклад, відомі ливерморские цикли.
Найбільш популярним тестом продуктивності є Linpack, який є вирішенням системи N лінійних рівнянь методом Гауса. Оскільки відомо, скільки операцій з дійсними числами потрібно виконати для вирішення системи, то, знаючи час розрахунку, можна обчислити виконувану в секунду кількість операцій.
Є декілька модифікацій цих тестів. Зазвичай фірми-виробники комп'ютерів наводять результати при N = 100.
Вільно поширюється стандартна програма на Фортрані, яку треба виконати на суперкомп'ютері, аби отримати результат тестування. Ця програма не може бути змінена, за винятком заміни викликів підпрограм, що дають доступ до процесорного часу виконання.
Інший стандартний тест відноситься до випадку N = 1000, що передбачає використання довгих векторів. Ці тести можуть виконуватися на комп'ютерах при різному числі процесорів, даючи також оцінки якості розпаралелювання.
Для MPP-систем цікавішим є тест Linpack-parallel, в якому продуктивність вимірюється при великих N і великій кількості процесорів. Тут лідером є 6768-процесорний Intel Paragon (281 GFLOPS при N = 128600). Що стосується продуктивності процесорів, то при N = 100 лідирує Cray T916 (522 MFLOPS), при N = 1000 і по піковій продуктивності - Hitachi S3800 (відповідно 6431 і 8000 MFLOPS). Для порівняння, процесор в AlphaServer 8400 має 140 MFLOPS при N =100 і 411 MFLOPS при N = 1000.
Для високопаралельних суперкомп'ютерів останнім часом все більше використовуються тести NAS parallel benchmark, які особливо хороші для завдань обчислювальної газо- і гідродинаміки. Їх недоліком є фіксація алгоритму рішення, а не тексту програми.