Вхід

Загальні відомості про обчислювальні кластери

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

Найпоширенішим є використання однорідних кластерів, тобто таких, де всі вузли абсолютно однакові по своїй архітектурі й продуктивності.

Для кожного кластера є виділений сервер - керуючий вузол (frontend). На цьому комп'ютері встановлене програмне забезпечення, яке активізує обчислювальні вузли при старті системи й управляє запуском програм на кластері.

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

Користувачі мають домашні каталоги на сервері доступу - шлюзі (цей сервер забезпечує зв'язок кластера із зовнішнім світом через корпоративну ЛВС або Інтернет), безпосередній доступ користувачів на керуючий вузол виключається, а доступ на обчислювальні вузли кластера можливий (наприклад, для ручного керування компіляцією завдання).

Обчислювальний кластер, як правило, працює під керуванням однієї з різновидів ОС Unix - багатокористувацької багатозадачної мережевої операційної системи. Зокрема, в ІК НАН України кластери працюють під керуванням ОС Linux - вільно розповсюджуваного варіанта Unix.

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

Існує декілька способів зайняти обчислювальні потужності кластера:

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

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

Тобто процес, який повинен одержати дані, викликає операцію receive (прийняти повідомлення), і вказує, від якого саме процесу він повинен одержати дані, а процес, який повинен передати дані іншому, викликає операцію send (послати повідомлення) і вказує, якому саме процесу потрібно передати ці дані.

Ця модель реалізована за допомогою стандартного інтерфейсу MPI. Існує кілька реалізацій MPI, у тому числі безкоштовні й комерційні, переміщені й орієнтовані на конкретну комунікаційну мережу. На кластерах СКІТ-1 і СКІТ-2 ми використовуємо комерційну реалізацію Scali (для интерконнекта SCI) і безкоштовну Openmpi (для интерконнекта Infiniband).

Як правило, Mpi-програми побудовані по моделі SPMD (одна програма - багато даних), тобто для всіх процесів є тільки один код програми, а різні процеси зберігають різні дані й виконують свої дії залежно від порядкового номера процесу.

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

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

Якщо завантаження на всіх або на частині вузлів далека від 100% - виходить, програма неефективно використовує обчислювальні ресурси, тобто створює більші накладні витрати на обміни даними або нерівномірно розподіляє обчислення між процесами. Користувачі СКІТ-1 і СКІТ-2 можуть подивитися завантаження через веб-інтерфейс для перегляду стану вузлів.

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

вычисления на суперкомпьютере, сверхбыстрые вычисления, рендеринг, фитнес клубы, спортивные клубы