Electra Supercomputer

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Суперкомп'ютерний комплекс NASA

Electra — це перша прототипна модель суперкомп'ютерної системи NASA. Побудована в 2016 році та розширена в 2017. Electra розміщується на невеликий відстані від головної будівлі NASA в Дослідницькому центрі Еймса. Система названа на честь однієї з семи зірок, що утворюють відкритий зоряний кластер Плеяд у сузір'ї Тельця.[1]

Архітектура системи[ред. | ред. код]

Electra сконфігурована наступним чином:

  • 16 стійок Broadwell і 4 Skylake E-клітини
  • 2,304 вузли
  • 78,336 ядер
  • 368 ТБ загальної пам'яті
  • 4,79 петафлопс теоретична пікова продуктивність

У кожній стійці є 4 окремі блоки стійок (IRU). Для кожних двох стійок є лідер стійки, який контролює їх. Умовні позначення для вузлів, що знаходяться на кожних двох стелажах, використовують лише непарні номери стійок.

Broadwell — 18 вузлів на IRU, з 144 вузлами, що знаходяться у кожних двох стійках(2 стійки х 4 IRU x 18 вузлів). Хост-імена для вузлів Broadwell — r [x] i [0-7] n [0-17], де x = непарні числа від 1 до 15.

Skylake — 36 вузлів на IRU, з 288 вузлами, що знаходяться у кожних двох стійках (2 стійки х 4 IRU x 36 вузлів). Хост-імена для вузлів Skylake — r [x] i [0-7] n [0-35], де x = непарні числа між 141 та 147.

Процесор, пам'ять та мережева підсистеми[ред. | ред. код]

Архітектура системи Electra — це ICE X. У наведеній нижче таблиці представлена детальна статистика для процесорів, пам'яті та мережевих підсистем[2]:

Процесор
Параметр Broadwell Skylake
CPU 14-Core

Xeon E5-2680v4

20-Core

Xeon Gold 6148

Набір інструкцій AVX2 AVX-512
Hyperthreading + +
TurboBoost + +
Частота CPU 2.4 GHz 2.4 GHz
Максимальні операції з плаваючою

точкою з подвійною точністю

за цикл на ядро

16 32
Кількість ядер/вузол 28 40
Загальна кількість вузлів 1,152 1,152
Загальна кількість ядер 32,256 46,080
Загальна подвійна точність (Тфлопс) 1,239 3,539
Пам'ять
Параметр Broadwell Skylake
Кеш L1 Локальне для кожного ядра;

Інструкція кеш-пам'яті: 32K

Кеш-пам'ять: 32K;

Асоціативність: 8;

Розмір лінії кешу: 64B

Локальне для кожного ядра;

Інструкція кеш-пам'яті: 32K

Кеш-пам'ять: 32K;

Асоціативність: 8;

Розмір лінії кешу: 64B

Кеш L2 256 КБ на ядро;

Асоціативність: 8;

Розмір лінії кешу: 64B

1 Мб на ядро;

Асоціативність: 16;

Розмір лінії кешу: 64B

Кеш L3 35 МБ поділено

включно 14 ядрами;

Асоціативність: 20;

Розмір лінії кешу: 64B

27,5 МБ поділено

не включно 14 ядрами;

Асоціативність: повна;

Розмір лінії кешу: 64B

TLB Локальний для кожного ядра
Розмір сторінки за замовчуванням 4 KB 4 KB
Пам'ять / Ядро 4.6 GB; DDR4 4.8 GB; DDR4
Загальна пам'ять / вузол 128 GB 192 GB
Швидкість та пропускна здатність 2400 МГц;

4 канали;

76,8 ГБ/сек читання/запис

2666 МГц;

6 каналів;

128 Гб/сек читання/запис

Мережеве з'єднання QuickPath Interconnect

4,8 ГГц,

9.6 GT/сек, або 38,4 ГБ/сек

Ultra Path Interconnect

5.2 GHz, 10.4 GT/s, або 41.6 ГБ/сек

Мережева підсистема
Параметр Broadwell Skylake
IB Пристроїв на вузлі Dual single-port 4x FDR IB

Mezzaninecard (2 single-port HCAs);

56 Gbits/s

Dual single-port 4x EDR IB

Mezzanine card (2 single-port HCAs);

100 Gbits/s

IB Перемикачі між вузлами 4x FDR;

56 Gbits/s

4x EDR;

100 Gbits/s

Огляд вузлів Electra Skylake[ред. | ред. код]

Конфігурація Skylake для Electra

Electra включає 1152 вузли Skylake, які розділені на вісім фізичних стійок. Кожен вузол містить два 20-ядерних сокети Xeon Gold 6148 (2,4 ГГц) і 192 Гб пам'яті. Вузли підключені до мережі Electra InfiniBand (ib0 та ib1) через пристрої з посиленою швидкістю передачі даних (4X EDR) з чотирьохрядковими лініями та комутаторами для міжвузляного зв'язку. Ткани ib1 використовуються в основному для введення / виводу і підключаються до файлових систем Pleiades Luster. Крім того, Electra і Pleiades мають ті ж самі домашні файлові системи, фронт-системи Pleiades (PFEs) і сервер PBS.Існує можливість отримати доступ до Electra лише за допомогою завдань PBS, поданих від PFE[3].

Використання вузлів Electra Skylake завантажується в розподілення проекту на плеяди у розмірі 6,36 стандартних розрахункових одиниць (СРО).

Компіляція коду для вузлів Skylake[ред. | ред. код]

Процесори Skylake включають Advanced Vector Extensions 512 (AVX-512). Оптимізація Intel AVX-512 включена в компілятор Intel версії 16.0 та пізніших версій.

Для специфічних для Skylake оптимізацій використовується опція компілятора -xCORE-AVX512.

Якщо потрібен один виконуваний файл, який буде працювати на будь-якому з типів процесорів Electra, Pleiades або Merope, при відповідній оптимізації, що визначається під час виконання, можна скомпілювати програму за допомогою опції -o3 -axCORE-AVX512 -xSSE4.2.

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

Запуск роботи PBS на вузлах Electra Skylake[ред. | ред. код]

Щоб замовити вузли Electra Skylake, використовується команда:

model = sky_ele

Важливо: оскільки версії MPT 2.15 та попередні версії не підтримують адаптери хост-каналів ConnectX-5 (HCA), змінні середовища MPI_IB_XRC та MPI_XPMEM_ENABLED були вимкнені для завдань, що виконуються на Skylake. Якщо програми MPI виконують важливі колективні операції з MPI і покладаються на те, що ці два змінні можна активувати, використовується MPT 2.16 або новіші версії. Зразок сценарію PBS для вузлів Electra Skylake:

#PBS -l select=10:ncpus=40:mpiprocs=40:model=sky_ele
#PBS -l walltime=8:00:00
#PBS -q normal

module load mpi-hpe/mpt.2.17r4

# To test the 2018.0.128 compiler
module use -a /nasa/modulefiles/testing
module load comp-intel/2018.0.128

cd $PBS_O_WORKDIR

mpiexec -np 400 ./a.out

Перевірка використання розподілу для Electra Jobs:

 acct_query -c electra

Приклади: Відстежувати загальне використання СРО для одного з GID (наприклад, s0001) з 30.09.2007:

% acct_query -c electra -ps0001 -b 9/30/17

Для відстеження використання СРО для кожної роботи запущено сьогодні: 

% acct_query -c electra -low

Огляд вузлів Electra Broadwell[ред. | ред. код]

Конфігурація Broadwell для Electra

Система має 16 стійок Broadwell, кожна з яких складається з 72 вузлів. Кожен з 72 вузлів містить два 14-ядерних чипи E5-2680v4 (2,4 ГГц) і 128 Гб пам'яті.

Electra's InfiniBand (ib1) використовується в основному для введення / виводу і підключається до файлових систем Pleiades Luster. Крім того, Electra і Pleiades мають ті ж самі домашні файлові системи, фронт-системи Pleiades (PFEs) і сервер PBS. Можна отримати доступ до Electra лише за допомогою завдань PBS, поданих від PFE[4].

Компіляція коду для вузлів Broadwell[ред. | ред. код]

Процесори Broadwell підтримують розширення AVX2 (Advanced Vector Extensions 2), на додаток до AVX (підтримуються, починаючи з Sandy Bridge), SSE4.2 (підтримуються, починаючи з Nehalem) та попередні покоління SSE.

AVX2 підтримує операції з рухомою комою, множинне додавання, цілі векторні вказівки до 256 біт, а також обробка векторної графіки. Програма може скористатися перевагами AVX2, однак не всі програми можуть ефективно використовувати цей набір інструкцій. Рекомендується використовувати останній компілятор Intel comp-intel / 2016.2.181 та експериментувати з наведеними нижче наборами параметрів компілятора перед тим, як почати виробництво в вузлах Broadwell:

-O2 -xCORE-AVX2
-О3 -xCORE-AVX2

Ці параметри компілятора створюють виконуваний файл, оптимізований для роботи на Broadwell. Якщо необхідно створити єдиний виконуваний файл, який буде працювати на будь-якому з існуючих типів процесорів…

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

Запуск роботи PBS на вузлах Electra Broadwell[ред. | ред. код]

Щоб замовити вузли Broadwell, використовується команда:

model=bro_ele

Примітка: якщо робота вимагає лише model = ver_ bro_ele, то за замовчуванням PBS виконуватиме роботу на вузлах Pleiades або Electra Broadwell, залежно від того, який з них стане доступним першим. Якщо необхідно, щоб програма працювала лише на Electra, необхідно додати до запиту на роботу:

-l site = static_broad

Наприклад:

# PBS -l select = 10: ncpus = 28: mpiprocs = 28: model = bro_ele
# PBS -l site = static_broadwell

Зразок сценарію PBS для вузлів Electra Broadwell:

#PBS -l select=10:ncpus=28:mpiprocs=28:model=bro_ele
#PBS -l walltime=8:00:00
#PBS -q normal
module load comp-intel/2016.2.181 mpi-sgi/mpt
cd $PBS_O_WORKDIR
mpiexec -np 280 ./a.out

Література[ред. | ред. код]

  1. Electra Supercomputer. www.nas.nasa.gov (англ.). Архів оригіналу за 1 лютого 2017. Процитовано 4 травня 2018.
  2. Electra Configuration Details - HECC Knowledge Base. www.nas.nasa.gov (англ.). Архів оригіналу за 24 січня 2022. Процитовано 4 травня 2018.
  3. Preparing to Run on Electra Skylake Nodes - HECC Knowledge Base. www.nas.nasa.gov (англ.). Архів оригіналу за 20 квітня 2021. Процитовано 4 травня 2018.
  4. Preparing to Run on Electra Broadwell Nodes - HECC Knowledge Base. www.nas.nasa.gov (англ.). Архів оригіналу за 22 квітня 2021. Процитовано 4 травня 2018.

Див. також[ред. | ред. код]