logo
AOM / Мельник А

12.1. Використання принципів паралельної обробки інформації в архітектурі комп'ютера

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

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

423

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

Паралельна пам'ять та паралельна арифметика. Всі найперші комп'ютери (EDSAC, EDVAC, UNIVAC) мали послідовну пам'ять, із якої слова зчитувалися послідовно біт за бітом. Першим комерційно доступним комп'ютером, що використовував паралель­ну пам'ять і паралельну арифметику, став комп'ютер IBM701, який поступив на ринок у 1953 році. В більш популярній моделі IBM704, що поступила на ринок у 1955 році, крім названого, була вперше застосована пам'ять на феритових сердечниках і апаратний арифметичний пристрій з рухомою комою.

Незалежні процесори введення-виведення. В перших комп'ютерах процесори не лише обробляли інформацію, а й керували введенням-виведенням. Проте швидкість роботи найшвидшого зовнішнього пристрою, а в ті часи це була магнітна стрічка, була в 1000 разів меншою швидкості процесора, тому під час операцій введення/виведення процесор фактично простоював. У 1958 р. до комп'ютера IBM704 приєднали 6 неза­лежних процесорів введення/виведення, що після одержання команд від центрального процесора могли працювати паралельно з ним, а сам комп'ютер перейменували в IBM709. Дана модель була досить вдалою, підтвердженням чого є те, що було продано біля 400 її екземплярів, які знаходились в експлуатації близько 20 років.

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

Конвеєр команд. Вперше конвеєрний принцип виконання команд був використа­ний у комп'ютері ATLAS,розробленому в Манчестерському університеті в 1962 році. Виконання команд розбито на 4 стадії: вибірка команди, обчислення адреси операнда, вибірка операнда і виконання операції. Конвеєризація дозволила зменшити час вико­нання команд із 6 мкс до 1,6 мкс. Створення даного комп'ютера зробило величезний вплив як на подальший розвиток архітектури комп'ютера, так і на розвиток системного програмного забезпечення: у ньому вперше використана мультипрограмна операційна система, що використовувала віртуальну пам'ять і систему переривань.

Незалежні операційні пристрої. В 1964 році фірма ControlDataCorporation(CDC)при особистій участі одного з її фундаторів Сеймура Крея випускає комп'ютер CDC-6600 - перший комп'ютер, у якому використовувалося декілька незалежних операційних пристроїв. Для порівняння із сьогоднішнім днем приведемо деякі характеристики цього комп'ютера:

Комп'ютер CDC-6600мав великий успіх на ринку, суттєво потіснивши комп'ютери фірми IBM.

Конвеєрні незалежні операційні пристрої. В 1969 році фірма CDCвипускає комп'ю­тер CDC-7600із вісьмома незалежними конвеєрними операційними пристроями, тим

424

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

Матричні процесори. В 1967 році були розпочаті роботи над створенням матрично­го процесора ILLIACIV,проект якого передбачав досягнення наступних характеристик: 256 процесорних елементів (ПЕ) - 4 квадранти по 64 ПЕ, з можливістю реконфігурацїї на 2 квадранти по 128 ПЕ, або на 1 квадрант із 256 ПЕ, такт рівний 40 нс, продуктив­ність рівна 1 млрд. операцій з рухомою комою за секунду. В якості пристрою керування був використаний універсальний комп'ютер із невеликою продуктивністю. Кожний ПЕ мав власний АЛП з повним набором команд та пам'ять ємністю 2К 64-розрядних слів з циклом 350 нс. Комп'ютер був введений в експлуатацію у 1974 році в складі лише 1 квадранта, такт 80 нс, реальна продуктивність наблизилась до 50 млн операцій з рухо­мою комою за секунду. Однак даний проект суттєво вплинув на архітектуру наступних комп'ютерів, побудованих за схожим принципом, які дістали назву масивно-паралель­них комп'ютерів із розподіленою пам'яттю. Ідея побудови комп'ютерів цього класу на­ступна: беруться серійні мікропроцесори зі своєю локальною пам'яттю та з'єднуються за допомогою деякого комунікаційного середовища. Переваги такої архітектури наступні: якщо потрібно підвищити продуктивність, то збільшується кількість процесорів, якщо обмежені фінанси або заздалегідь відома необхідна продуктивність, то легко підібрати оптимальну конфігурацію і т. п.

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

За цим принципом були побудовані комп'ютери PEPE,BSP,ICLDAP.До даного класу можна також віднести комп'ютери IntelParagon,IBMSP1,Parsytec,у якійсь мірі IBMSP2і CRAYT3D/T3E.До цього ж класу можна віднести і мережі комп'ютерів.

Векторно-конвеєрні комп'ютери. У 1972 році С. Крей залишає фірму CDCі засно­вує власну компанію Cray Research, що у 1976 р. випускає перший векторно-конвеєр­ний комп'ютер CRAY-1 з наступними характеристиками: час такту рівний 12,5 нс, 12 конвеєрних операційних пристроїв, пікова продуктивність - 160 мільйонів операцій за секунду, основна пам'ять до 1Мслова (слова 64-розрядні), цикл пам'яті рівний 50 нс. Го­ловним нововведенням є використання векторних команд, що працюють із масивами цілих чисел і дозволяють ефективно використовувати конвеєрні операційні пристрої, а також ієрархія пам'яті. Ієрархія пам'яті прямого відношення до паралелізму не має, про­те, безумовно, належать до тих особливостей архітектури комп'ютерів, що мають велике значення для підвищення їхньої продуктивності (згладжування різниці між тактом ро­боти процесора і часом вибірки з пам'яті). Основні рівні: регістри, кеш пам'ять, основна пам'ять, дискова пам'ять. Час вибірки по рівнях пам'яті від дискової до регістрів змен­шується, вартість у перерахунку на 1 слово (байт) росте. В даний час подібна ієрархія підтримується і на персональних комп'ютерах.

425

Паралельні комп'ютери із спільною пам'яттю. З розвитком архітектур та техноло­гій виробництва компонентів комп'ютера, в тому числі пам'яті, з'явився новий клас комп'ютерів - паралельні комп'ютери із спільною пам'яттю. Вся основна пам'ять таких комп'ютерів розділяється декількома однаковими процесорами. Хоча кількість процесо­рів, що мають доступ до спільної пам'яті, за чисто технічними причинами не можна зро­бити великим, до даного напрямку входить багато сучасних багатопроцесорних систем, наприклад, комп'ютери HPExemplarі SunStarFire.

Зрозуміло, що в багатьох випадках у комп'ютерах використовується комбінація описаних технічних рішень. З декількох процесорів (традиційних або векторно-конвеєрних) і спільної для них пам'яті формується обчислювальний вузол. Якщо отриманої обчислювальної потуж­ності недостатньо, то об'єднується декілька таких вузлів швидкісними каналами зв'язку. Подібну архітектуру називають кластерною, і за таким принципом побудовані комп'ютери CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, останні моделі IBM SP2 й інші.

Системи з масовою паралельною обробкою інформації. Після початкового доміну­вання систем, що використовували повільні процесори з складною системою команд та розшаровану пам'ять, фірми Sun, HP, DEC, SGI, NCR/ATT, Tandem, Pyramid, IBM та CRI

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

Суперкомп'ютер Intel Parag­on. На рис. 12.1. подано органі­зацію суперкомп'ютера Intel Par­agon із так званою архітектурою на основі пересилання повідо­млень. Суперкомп'ютер побудо­вано як тривимірне об'єднання множини окремих вузлів (топо­логія гіперкуба). Кожен вузол містить два або більше процесо­рів i860, які утворюють систему з спільною пам'яттю, та вбудовану підтримку зовнішньої мережі із швидкодією обміну з мережею 175 MB за секунду. Кожен вузол має ще індивідуальний зв'язок із власною підсистемою пам'яті з використанням прямого доступу та шини кеш пам'яті. Це дозволяє ефективно пересилати великі па­кети інформації від кожного вузла до мережі та зворотно. Продук-

426

тивність системи складає 143 GFLOPS на тесті UNPACK (матричні тести лінійної алгебри), що на порядок перевищує продуктивність машин CRAY.

Суперкомп'ютер Blue Gene фірми IBM. Найшвидший на 2007 рік суперкомп'ютер, створення якого фірма IBMпроголосила у грудні 1999 року, отримав назву BlueGene.Він спроможний виконувати понад один квадрильйон операцій на секунду (1PFLOPS= 1000 TFLOPS=1000000 GFLOPS).BlueGeneє майже в мільйон разів продуктивнішим від ПК. Ієрархічний дизайн Blue Gene наведено на рис. 12.2.

BlueGeneскладено з мільйона процесорів, кожний з яких має продуктивність 1 GFLOPS.32 таких надшвидких процесори інтегровано до одного кристалу (32 GFLO­PS).Компактна (два фути на два фути) плата вміщує 64 щойно зазначених кристали (2 TFLOPS).Апаратна частина такого друкованого вузла є продуктивнішою від відомого рекордсмена, суперкомп'ютера ASCIміністерства енергетики СІЛА, який займає 8000 квадратних футів площі. 11 друкованих вузлів збирають до одної монтажної 6-ти футо­вої шафової конструкції, яка має продуктивність 16 TFLOPS.Фінальну конструкцію, що займає площу, меншу від 2000 кв. футів, утворено сполученням 64 шаф. Разом отриму­ється продуктивність 1 PFLOPS= 1000 TFLOPS.