Ви є тут

Публікації

Рухаючись до збалансованої комп’ютерної архітектури

Версія для друкуВерсія для друку

Продуктивність і ефективність додатків привертають велику увагу користувачів і постачальників обчислювальних рішень. І це зрозуміло - користувачі хочуть знати продуктивність для розрахунку повернення інвестицій в системи, які вони розглядають для покупки. Проте, виробники часто розробляють спеціальні і дорогі апаратні засоби, або настроюють існуючу платформу, щоб досягти максимуму продуктивності для даного додатку. Часто клієнт отримує ефективне рішення для його певного додатку тільки, щоб виявити, що:
• Продуктивність не є настільки ж високою для інших додатків або навіть для інших наборів даних.
• Вартість системи висока, і система дорога в обслуговуванні. Рішення не масштабується поза вибраною конфігурацією.
У пошуку вирішень цієї проблеми проведено багато тестів, досліджень прикладної ефективності, включаючи побудову концепції щодо рівноваги продуктивності центрального процесора, продуктивності пам'яті, і продуктивності підсистеми введення/виведення.
Остаточний висновок щодо вирішення цієї проблеми полягає в тому, що це рішення має знаходитися на межі перетину продуктивності і ефективності додатків з одного боку і низької ціни, дотримання промислових стандартів обчислювальної архітектури з іншого. Цей висновок - ключова мотивація в розробці PCI Express і InfiniBand.
 

Системний баланс комп’ютерних платформ

Системний баланс - здатність системи максимізувати продуктивність процесора для задоволення запиту в процесорній потужності від додатків. Наприклад, паралельні додатки, типу моделювання і симуляції, вимагають інтенсивних обчислень і обміну даними. Ці додатки повинні виконати мільйони обчислень і потім змінити проміжні результати перед початком іншої операції. Для максимізації продуктивності процесора цей обмін даними повинен бути достатньо швидким, щоб запобігти простою процесора в очікуванні даних. Таким чином, чим швидшими є процесори, тим більшою є необхідна пропускна спроможність і нижче допустимий час очікування. Крім того, продуктивність різних додатків залежить від різних аспектів обчислювальної системи. Збалансована система урівноважує потреби додатків і характеристики пам'яті, системи введення/виведення і продуктивність міжмережевих з'єднань з обчислювальною потужністю для досягнення максимального ефективного навантаження процесорів.
З цього ясно, що ефективність системи і додатків складається під впливом трьох основних елементів обчислювальної архітектури:

1. Продуктивності центрального процесора.
2. Продуктивності підсистеми пам'яті.
3. Продуктивності підсистеми введення/виведення.

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

Наприклад, результативність Finite Element Analysis (FEA), використовуваного в динамічному автомобільному або авіаційному моделюванні дуже залежить від пропускної спроможності пам'яті, потребуючи в середньому 1.2 байта на секунду при виконанні операцій з плаваючою комою. У таких додатках процесори витратять даремно багато робочих циклів, чекаючи доступу до пам'яті в системах, де пропускна спроможність пам'яті не відповідає продуктивності центрального процесора. Ця невідповідність призводить до збільшення тривалості часу виконання додатків і меншої кількості результатів, які могли б бути оброблені. Погано збалансований 128 процесорний кластер може надати ту ж саму продуктивність як і система з 64 процесорів, при цьому даремно витрачаючи інвестований капітал, обчислювальні ресурси, і засоби керування.

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

На щастя, кілька років тому, системні розробники і архітектори підсистем введення/виведення визнали цей дефект платформи і розвинули декілька ключових нових технологій, включаючи 64-бітову адресацію, InfiniBand і PCI Express (PCIe) інтерфейси введення/виведення, щоб ліквідовувати ці потенційні обмеження.

Результат цієї роботи стало оновлення платформи, яке надало високо збалансовану обчислювальну архітектуру, досягнуту з комбінацією:

Процесорів Intel® Xeon™.
Пам’яті Intel® Extended Memory 64 Technology (EM64T) і DDR2 SDRAM.
Підсистеми вводу-виводу InfiniBand and PCI Express.
    
    
Закон Амдала і найслабкіша ланка

Закон Амдала (Gene Myron Amdahl, ???. http://en.wikipedia.org/wiki/Gene_Amdahl) - одне з найбільш фундаментальних понять в комп'ютерній архітектурі, яке вказує на важливість наявності збалансованої системної архітектури. Закон Амдала стверджує, що збільшення продуктивності, яке може бути отримано через поліпшення деякої підсистеми комп'ютера обмежено часом, за який підсистема виконує завдання. Математично закон може бути виражений так:

S(прискорення) = Two/Tw (EQ 1), де
Two = Час виконання для всього завдання без вдосконалення підсистеми,
Tw = Час виконання завдання з окремим вдосконаленням підсистеми.

Таким чином прискорення показує, наскільки швидше завдання буде виконано з поліпшенням підсистеми. Важливо визнати, що якщо внесок одного елементу системи домінує в повному часі виконання завдання, то вдосконалення продуктивності двох інших компонентів матиме невеликий вплив на сукупну продуктивність. Тому є очевидним припущення, що у випадку, якщо одна підсистема вносить 95% у сукупний час виконання завдання, то не має сенсу витрачати зусилля на оптимізацію продуктивності підсистем, які вносять тільки 5% у сукупний час виконання. Натомість має сенс зосередитися на найслабкішій ланці.

Приклад допоможе зробити це яснішим. Розглянемо випадок розподіленої (кластеризованої) бази даних, розміщеної на 16 вузлах. База даних Oracle 10g Grid Database (те ж саме буде спостерігатися на більш сучасних версіях Oracle 11g Grid, тощо) - хороший приклад цього типу розподіленої системи, яка представляє значно краще співвідношення ціна/продуктивність в порівняні з типовими “великими коробками” симетричних мультипроцесингових (SMP) машин.
Oracle розподіляє дані впоперек всіх вузлів в кластері відповідно до архітектури “Cache Fusion”. Типова операція низького рівня в цьому типі архітектури вимагає, щоб даний вузол отримав великий (скажемо 64KByte) блок даних від іншої машини, зберігав дані в пам'яті і виконав деяку обробку даних (виключаючи пошук найбільшого значення в записі таких значень). Відповідно є три елементи, які роблять свій внесок до повного часу обчислення:

1. Отримання даних від іншого вузла (введення — висновок).
2. Отримання даних з пам'яті.
3. Обробка даних і генерація результату.

Розглянемо наступну архітектуру кластера:

Процесор : Intel 2.8GHz Xeon™.
Чіпсет /Пам’ять: DDR 300MHz, 128 bit wide .
Введення/виведення : PCI-X і Gigabit Ethernet (пізніше ми наведемо порівняння з системою, яка використовуює Intel® EM64T та PCI Express з InfiniBand).

Перше завдання полягає в тому, щоб отримати дані від іншого вузла. З підсистемою введення/виведення, базованою на PCI-X і Gigabit Ethernet, ця операція вимагає біля 1100us, щоб перемістити 64 КБ даних.

Наступний крок полягає в отриманні даних з пам'яті. Припустимо, що наша пам'ять працює з частотою 300MHz, ширина шини 128 біт і 50%-ою ефективністю шини. Виходячи з цих характеристик розраховуємо, що дані можуть бути отримані приблизно за 27us.

Нарешті, дані повинні бути оброблені центральним процесором. Об'єм роботи, виконуваний на цьому кроці є змінним і залежним від алгоритму обробки створеного програмістами, але для визначеності припустимо, що виконуваний алгоритм вимагає виконання 3-х команд на байт. Звідси, для процесорів з частотою 2.8 Ghz внесок обробки в сукупний час виконання завдання складе 70us.

Таким чином повний час виконання становить:

Введення/виведення (I/O) 1092.3us
Пам’ять (Memory) 27.3us
Обробка (Processing) 70.2us
Повний час виконання 1189.8us

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

Тепер розглянемо досягнення прискорення шляхом збільшення частоти центрального процесора від 2.8GHz до 3.4GHz. Тоді як це є істотним удосконаленням продуктивності центрального процесора, приріст повної продуктивності щодо часу виконання завдання є, фактично, досить маленьким. Отримані в результаті дані:

Введення/виведення (I/O) 1092.3us
Пам’ять (Memory) 27.3us
Обробка (Processing) 57.8us
Повний час виконання 1177.4us

Таким чином повний час виконання завдання поліпшується всього лиш приблизно на 1%, не дивлячись на значне удосконалення частоти центрального процесора.
Так само підвищення продуктивності шляхом підвищення частоти роботи пам'яті від 300MHz до 400MHz призводить до загального підвищення продуктивності системи тільки на 0.6%. Об'єднання прискорення центрального процесора і прискорення пропускної спроможності пам'яті призводить до незначного підвищення продуктивності на 1.6 % у загальному часі виконання завдання. Не дивлячись на істотні удосконалення і центрального процесора, і продуктивності пам'яті, повна продуктивність покращується не істотно.
Ясно, що отримання такого відносно маленького загального прискорення - результат зосередження на вдосконаленнях центрального процесора і підсистеми пам'яті, залишаючи без уваги підсистему, яка створює найбільший внесок в загальний час виконання - в нашому випадку це підсистема введення/виведення. Для інших додатків, для яких обчислення є інтенсивнішим ніж введення/виведення, внесок обробки міг би домінувати, і було б досягнуто значно кращого прискорення. Проте для дуже великого класу додатків (типу кластерного додатку бази даних, описаного вище) введення/виведення надзвичайно важливе. Ще один важливий момент, сервери - машини для реалізації загальних цілей, і ніколи не можна знати точно, які додатки вони повинні підтримувати. Таким чином важливо, щоб вся системна архітектура була збалансована так, щоб істотне досягнення продуктивності в одній підсистемі, фактично, призвело до істотного загального прискорення.
    
    
Оновлення платформи з PCI Express і InfiniBand

У наведеному вище прикладі роль компонента введення/виведення явно домінує в сукупному часі виконання завдання. На щастя, системні архітектори від Intel і провідних продавців серверів визнали потребу в покращенні продуктивності підсистеми введення/виведення і розробили нові технології, типу InfiniBand і PCI Express, щоб ліквідувати вузьке місце підсистеми введення/виведення, і Intel® EM64T, щоб збільшити продуктивність і масштабованість підсистеми пам'яті. Нові серверні платформи на базі PCI Express і підсистеми пам'яті Intel® EM64T починають постачатися провідними продавцями серверів, і Mellanox тепер постачає InfiniHost HCA версії PCI Express, який найкращим чином відповідає цим платформам. Особливостями нового HCA є новий інтерфейс PCI Express і покращені характеристики кешування HCA, які відповідають зростанню інтенсивності операцій введення/виведення, що очевидно покращує швидкість роботи додатків.

Системні вдосконалення архітектури з PCI Express і InfiniBand спрощують і покращують продуктивність серверів наступних поколінь.

Нова архітектура серверної платформи передбачає розміщення підсистеми введення/виведення безпосередньо біля підсистеми пам'яті і центрального процесора. Попередні покоління серверної архітектури вимагали, щоб дані на шляху до підсистеми пам'яті і центрального процесора перетинали мости введення/виведення PCI-X. З InfiniBand і PCI Express залишається один широкий послідовний канал безпосередньо між серверними підсистемою пам'яті і центральним процесором. Це призводить до зменшення тактів роботи чіпа, скорочує час очікування, і, як буде показано, покращує сукупну збалансованість системи і загальну продуктивність.
Цього вдосконалення продуктивності введення/виведення вдалося досягнути в результаті додавання карти InfiniBand Host Channel Adapter до серверної платформи, що включає PCI Express. Обидва цих компоненти є стандартами промисловості, доступними серед продуктів, що є в наявності, в портфелях численних вендорів. Платформа Supermicro, яка показана на ілюстрації 1, “Платформа Supermicro 6014-і 82 - 1U DP High Performance Server зі слотом PCI Express", на сторінці 6, включає центральний процесор Xeon на 3.4 Ггц, набір мікросхем E7520, 4GB пам'яті, 8X слота PCI Express з Dual port InfiniBand HCA, і є хорошим прикладом описаної архітектури.

З InfiniBand і PCI-X пропускна спроможність підсистеми введення/виведення покращується більш ніж у вісім разів порівняно з Gigabit Ethernet. У випадку з подвійними портами InfiniBand і PCI Express зростання продуктивності є ще значнішим, і пропускна спроможність досягає до 20Gbs. Очевидно, що комбінація InfiniBand і PCI Express призводить до значних вдосконалень продуктивності і пропускної спроможності системної архітектури, які призводять до поліпшення характеристик часу очікування пересилки даних.

Підвищення продуктивності збалансованої платформи з Intel® EM64T, PCI Express і InfiniBand

Таким чином додавання PCI Express і InfiniBand призводить до значного поліпшення продуктивності введення/виведення, створює базу для подальшого оновлення платформи. Комбінація PCI Express і InfiniBand розширює ефективну пропускну спроможність введення/виведення поверх 900MB/sec для 64 Кбайтних блоків! Нова безпрецедентна пропускна спроможність знижує час передачі блоку розміром 64 КБ від віддаленого вузла з 1092.3us до 72.8us. Розгляд сукупної продуктивності системи, що включає підсистему введення/виведення, модернізовану з PCI Express і InfiniBand показує:

Введення/виведення (I/O) (InfiniBand & PCI Express) 72.8us
Пам’ять (Memory) (300MHz/128bits) 27.3us
Обробка (Processing) (2.8GHz CPU) 70.2us
Повний час виконання 170.3us

Вражаючі результати! Сукупний час виконання завдання зменшений з ~1190us до ~170us або приблизно на 86%! Зосередження на поліпшенні компоненту, який збільшує сукупний час виконання завдання призвело до значного прискорення роботи всієї системи.
Але ще результативнішим є те, що тепер платформа збалансована так, що прискорення інших підсистем приведе до істотного додаткового зростання сукупної продуктивності.

Тепер, з PCI Express і підсистемою введення/виведення InfiniBand, розглянемо апгрейд центрального процесора від 2.8GHz до 3.4GHz:

Введення/виведення (I/O) (InfiniBand & PCI Express) 72.8us
Пам’ять (Memory) (300MHz/128bits) 27.3us
Обробка (Processing) (3.4GHz CPU) 57.8us
Повний час виконання 157.9us

Використавши швидший центральний процесор вдалося скоротити повний час виконання на 12.4us, покращуючи, таким чином, сукупну продуктивність на 7.8 %. Так само, використання 400MHz підсистеми пам'яті дає зменшення часу виконання до 151.1us і покращує сукупну продуктивність на 11.3 % порівняно з базовою конфігурацією PCI Express і підсистемою введення/виведення InfiniBand.
Ясно, що використання PCI Express і InfiniBand збільшує продуктивності, але разом з тим встановлення збалансованої системної архітектури дозволяє отримати додатковий прибуток в продуктивності від інших системних компонентів. В той же час використання процесора Intel® Xeon з EM64T і PCI Express, і підсистеми введення/виведення InfiniBand дозволяє досягти ідеалу збалансованої архітектури обчислювальної платформи.
    
    
Ніяких програмних перешкод

Часто впровадження нової архітектури платформи значно сповільнене у зв'язку з вимогами розробки нового програмного забезпечення. На щастя, в цьому випадку, переміщення до PCI Express повністю прозоре. Драйверне програмне забезпечення InfiniBand створене так, щоб спростити міграцію від PCI-X до PCI Express, забезпечуючи повну зворотну сумісність. Крім того, програмне забезпечення InfiniBand дозволяє створювати гетерогенні кластери, використовуючи і PCI-X, і платформи PCI Express. Тому інвестиції, зроблені Mellanox, так само як і її клієнтами в драйвери, APIs і додатки зберігаються, і ці активи можна використовувати на нових платформах.

Резюме

Для досягнення оптимальної сукупної системної продуктивності збалансована обчислювальна архітектура повинна одночасно звертатися до системної тріади: центрального процесора, підсистеми пам'яті і підсистеми введення/виведення. Не достатня увага до будь-якого з цих елементів веде до того, що досягнення продуктивності в інших двох елементах нівелюється і не призводить до істотного сукупного вдосконалення продуктивності. Комбінація нових високоефективних процесорів Xeon, включаючи вищу пропускну спроможність технології пам'яті Intel® EM64T, і революційно вдосконалену підсистему введення/виведення з PCI Express і InfiniBand дозволяє реалізувати таку збалансовану платформу. Повернення рівноваги архітектурі призводить до зростання сукупного системного прибутку в продуктивності від кожного істотного прибутку в продуктивності будь-якого з елементів системи. Очікується, що модернізація процесорів і підсистеми пам'яті продовжить виконання закону Мура і надасть поштовх зростанню швидкості обробки і продуктивності. Комбінація InfiniBand і PCI Express збалансувала платформу так, що переваги окремих компонент фактично створюють переваги на системному рівні. Крім того, і InfiniBand, і PCI Express мають перспективи, щоб продовжити збільшувати продуктивність (з подвійною кількістю даних і навіть з вчетверо більшою кількістю даних, розширення каналів обміну даними і т.д). Таким чином, промисловість постачає новий процесор, пам'ять, технології введення/виведення саме вчасно, щоб зберегти стійке зростання рентабельності системної продуктивності.

Mellanox, InfiniBridge, InfiniHost і InfiniScale - зареєстровані торгові марки Mellanox Technologies, Inc. InfiniBand (TM/SM) - торгова і сервісна марка Асоціації Торгівлі InfiniBand. Всі інші торгові марки охороняються їх власниками.