В индустрии HPC (главным образом в США) сегодня можно выделить три основных направления работ: выпуск коммерческих образцов суперкомпьютеров гиперпетафлопсного уровня и заказных специализированных вычислительных комплексов (2012–2017 годы) на базе результатов программы DARPA HPCS (2002–2010 годы) и аналогичных программ Китая и Японии; создание новых экзамасштабных технологий в рамках программы DARPA UHPC (2010–2020 годы) для систем с удельной эффективностью 50 GFLOPS/вт; а также выполнение программы DARPA STARnet (2013–2025/2030 годы) по оптимизации применения КМОП-технологий и работ по созданию новой элементно-конструкторской базы постмуровской эры для применения сначала в экзафлопсных проектах, а потом — при создании суперкомпьютеров зетта- и йоттауровня.

Экзафлопсные суперкомпьютеры: достижения и перспективы

В предстоящие 5–10 лет ожидается появление суперкомпьютеров экзафлопсной производительности, окончание действия закона Мура, переход в эру постмуровских технологий, развертывание работ по созданию суперкомпьютеров зетта- и йоттамасштаба.

Виктор Горбунов, Георгий Елизаров, Леонид Эйсымонт

Результаты работ первого направления прослеживаются в таких коммерческих системах, как IBM Power 775 и Сray XE/XT, Cray XC30; K-компьютер; Tianhe-1A и Tianhe-2 (TH-2) [1,2]. Причем в двух последних наиболее заметны три важнейшие особенности будущих экзафлопсных систем: иерархичность, гибридность и гетерогенность. Иерархичность — выделение уровней сетевой иерархии, на которых производится тесная связь компонентов по типу «каждый с каждым» посредством маршрутизаторов с большим количеством портов для сетей разного уровня иерархии и высокой суммарной пропускной способностью. Гибридность — применение в вычислительных узлах микропроцессоров с ядрами разного типа. Гетерогенность — применение в суперкомпьютерах неоднородных сегментов, ориентированных на решение конкретного типа задач и реализуемых на базе специализированных микропроцессоров, сетей и устройств. В TH-2 такой неоднородный по отношению ко всей системе сегмент реализуется на базе нескольких тысяч массово-мультитредовых микропроцессоров FT-1500 собственного производства.

Особый интерес в TH-2 представляет свойство гибридности, связанное с применением в вычислительных узлах этой системы массово-многоядерных микропроцессоров Xeon Phi — по количеству используемых микропроцессоров этого типа TH-2 сейчас лидирует. Данный микропроцессор, имеющий пиковую производительность в 1 TFLOPS, и причины его включения в TH-2 заслуживают внимательного анализа, в частности, для уточнения требований к будущим микропроцессорам с производительностью 10–20 TFLOPS, которые станут базовыми элементами экзамасштабных систем.

Tianhe-2 — свойство гибридности

Вычислительный узел TH-2 — это два 12-ядерных микропроцессора Xeon Ivy Bridge (2,2 ГГц, пиковая производительность 211,2 GFLOPS, в каждом ядре два треда) и шесть 57-ядерных Xeоn Phi (1,1 ГГц, 1,003 TFLOPS, технология 22 нм). Оперативная память вычислительного узла — 88 Гбайт, из которых 64 Гбайт — память Ivy Bridge, а 24 Гбайт — память Xeon Phi.

 

Микропроцессор Intel Xeon Phi

Микропроцессор Xeon Phi первого поколения имеет 61 ядро (в каждом ядре 4 треда, 512-разрядное SIMD-устройство), 8 контроллеров памяти с двумя 32-разрядными каналами каждый. Второе поколение этого семейства будет изготовлено уже по технологии 14 нм. В Xeon Phi два конвейера выполнения команд: для операций SIMD и с плавающей точкой; для целочисленных операций. За такт в эти конвейеры возможна выдача двух команд. В каждом ядре выполнение команд происходит в порядке следования (in order), что проще, чем выполнение не в порядке следования (out of order), как это реализовано в суперскалярных микропроцессорах. В каждом ядре имеется кэш-память команд и кэш-память данных уровня L1 объемом по 32 Kбайт, а также кэш-память уровня L2 объемом 512 Kбайт, кэш-память тегов адресов данных (применяется для обеспечения когерентности памяти L2 разных ядер микропроцессора). Кэш-памяти уровня L3 нет.

Внутренняя сеть микропроцессора — десять однонаправленных колец, пять в одну и пять в другую сторону. В состав пяти однонаправленных колец входят: 64-байтовое кольцо данных, два кольца команд (чтение и запись) и адресов; два кольца сообщений о подтверждении выполнения команд, управления потоком передач в кольце, обеспечения кэш-когерентности L2. Пропускная способность внутрикристальной сети — 220 Гбайт/с, суммарная пропускная способность интерфейсов восьми контроллеров памяти — 352 Гбайт/с.

 

Вычислительные узлы TH-2 в общей сложности содержат 32 000 микропроцессоров Ivy Bridge и 48 000 Xeоn Phi —всего 3 120 000 ядер, из которых 384 000 — «тяжелые» суперскалярные ядра Ivy Bridge и 2 736 000 — «легкие» ядра Xeоn Phi с небольшим количеством тредов, но мощными SIMD-устройствами. Пиковая производительность TH-2, определяемая исходя из тактовой частоты и количества выполняемых за такт операций, составляет 54,9 PFLOPS, из которых 6,75 приходится на Ivy Bridge и 48,14 — на микропроцессоры Xeon Phi.

На тесте HPL (Linpack, рейтинг Top500) для TH-2 получена реальная производительность 30,65 PFLOPS — явно виден вклад Xeon Phi, поскольку даже пиковая производительность суперскалярных микропроцессоров составляет лишь 6,75 PFLOPS. На двух реальных задачах (гидродинамика и микротурбулентность плазмы в торе) производительность одного Xeon Phi составляет лишь 70 и 80% от развиваемой производительности двух Ivy Bridge соответственно. Иными словами, реальная производительность Xeon Phi составляет 140–160% от реальной производительности Ivy Bridge. Такое соотношение вполне оправдывает использование Xeon Phi, но не соответствует соотношению пиковых производительностей — они в пять раз больше.

Почему в TH-2 был использован именно Xeon Phi, в чем вообще причина популярности этого микропроцессора, каковы его сильные и слабые стороны?

В работе [3] на тесте SpMV умножения разреженной матрицы на вектор приведено сравнение Xeon Phi с суперскалярными микропроцессорами и графическими сопроцессорами. Тест SpMV всегда был важным в профессиональных кругах, но сейчас он приобретет особую популярность после выхода в начале июля 2013 года работы Джека Донгарры (автора рейтинга Top500), признавшего, что тест Linpack неадекватен современным приложениям и что полученные на нем результаты на самом деле вводят в заблуждение разработчиков, пользователей и политиков. Донгарра предложил ввести новый рейтинг на базе теста SpMV, в котором имеется интенсивная нерегулярная работа с памятью, что сильно снижает (в сравнении с Linpack) уровень развиваемой реальной производительности по отношению к пиковой, который зависит еще и от вида заполнения ненулевыми элементами разреженной матрицы.

В работе [3] для 22 разреженных матриц разного заполнения ненулевыми элементами приводятся результаты для Xeon Phi (плата SE10P, пиковая производительность — 61(ядро) х 16 (операций/такт) х 1,05 ГГц = 1024 GFLOPS) в сравнении с разными микропроцессорами: NVIDIA Tesla C2050 (Fermi) — 448 CUDA-ядер, пиковая производительность 515 GFLOPS; Tesla K20 (Kepler) — 2,496 CUDA-ядер, 1 ТFLOPS; плата с двумя Intel Xeon X5680 (Westmere) — 12 ядер, 320 GFLOPS; плата с двумя Intel Xeon E5-2670 (Sandy Bridge) — 16 ядер, 330 GFLOPS. Получено, что реальная производительность Xeon Phi достигает на разных матрицах от 2,5 до 22 GFLOPS. На 11 матрицах из 22 процессор Xeon Phi превосходит GPU Kepler, но не более чем в два раза. GPU Kepler обычно лучше GPU Fermi, а GPU Fermi лучше SandyBridge, который в два раза лучше, чем Westmere. При этом доля реальной производительности от пиковой на тесте SpMV для всех микропроцессоров очень низкая: Westmere — 0,78–1,09%; SandyBridge — 1,36–2,12%; GPU Fermi — 0,68–2,52%; GPU Kepler — 0,5–1,3 %; Xeon Phi — 0,25–2,25 %.

Следует признать, что в большинстве случаев Xeon Phi оказался на тесте SpMV более производительным, однако выигрыш не такой уж большой, а в некоторых случаях был и проигрыш. Наиболее вероятной причиной этого являются временные затраты на работу с памятью — SIMD-устройство, от которого ожидалась высокая реальная производительность, оказывается без операндов и простаивает.

Открытые источники дают общее представление о возможностях Xeon Phi, однако результатов системного изучения его возможностей обнаружить не удалось, поэтому потребовалось собственное исследование.

Результаты тестирования Xeon Phi

Для анализа был взят микропроцессор Xeon Phi 5110P 1,05 ГГц с пиковой производительностью одного ядра 16,8 GFLOPS и суммарной — 1,008 ТFLOPS. Он сравнивался с доступным на момент исследования двухсокетным узлом с 8-ядерными суперскалярными микропроцессорами Xeon E5-2660 Sandy Bridge (2,2 ГГц, пиковая производительность ядра — 17,6 GFLOPS), современником Xeon Phi.

Исследование началось с оценки эффективности подсистемы памяти и функциональных устройств на тестах с целенаправленно изменяемой нагрузкой (см. врезку «Оценка на тестах с изменяемой нагрузкой»). Полученные оценки удивили неожиданно большими значениями задержек для ядра XeonPhi при выполнении операций с памятью в случае плохой локализации, а также низкой реальной производительностью на тесте вычисления полиномов по схеме Горнера. Все это стало причиной проведения дополнительного исследования.

 

Оценка на тестах с изменяемой нагрузкой

Тестирование с помощью APEX-поверхностей (тест Apex-map) позволяет определить количество тактов процессора, затрачиваемых при одном обращении к памяти на считывание в зависимости от синтезируемой тестом пространственной и временной локализации обращений. Для одного ядра Xeon Phi и Sandy Bridge такие поверхности похожи, но отличаются характеристиками —- в таблице приведены характеристики крайних точек APEX-поверхностей: L — лучшая пространственная и временная локализация; G — худшая одновременно пространственная и временная локализация; F — хорошая временная и плохая пространственная локализация; T — плохая временная и хорошая пространственная локализация.

 

Таблица. Задержки выполнения обращений на считывание в предельных режимах
Точки локализации Xeon Phi Xeon Sandy Bridge
1 тред 60 тредов 120 тредов 1 тред 16 тредов 32 треда
Точка L 1,7 0,2 0,3 1,1 0,1 0,1
Точка G 442,8 8,6 4,6 229,8 15,4 15,9
Точка F 48,1 2,0 0,8 7,5 0,8 0,5
Точка T 5,1 0,2 0,2 1,9 0,4 0,4

 

Наилучшая APEX-поверхность должна иметь плоскую форму — значения в точках L, G, F и T должны не сильно отличаться и быть как можно меньше. Однако, как следует из таблицы, оба микропроцессора таких свойств явно не обспечивают. Кроме того, оказалось, что в точках G и F для Xeon Phi большие задержки, что было неожиданностью, тем более что тактовая частота Xeon Phi вдвое больше.

При увеличении используемых тестом Apex-map ядер и тредов качество APEX-поверхностей улучшается, а наблюдаемые задержки выполнения операций с памятью заметно снижаются. Выравнивание характеристик микропроцессоров происходит при 120 тредах на Xeon Phi (можно запустить и 240 тредов) и 16 тредах на Sandy Bridge. При этом в точке G интенсивной нерегулярной работы с памятью процессор Xeon Phi теперь заметно превосходит SandyBridge. Это говорит о том, что на задачах с интенсивной нерегулярной работой с памятью Xeon Phi обладает преимуществом даже по отношению к двум Sandy Bridge, но это достигается лишь при запуске на нем в десять раз большего числа тредов, чем на паре Sandy Bridge. Такой результат был ожидаемым.

Развиваемая реальная производительность зависит от локализации в пространстве и во времени обращений к памяти, а локализация определяется применением тех или иных шаблонов доступа к данным в программах. Реальная производительность также зависит от баланса в программе вычислительных операций и операций обращений к памяти. Если вычислительных операций много, то на фоне их выполнения можно скрыть затраты на обращения к памяти. Для оценки влияния на реальную производительность одного и другого из перечисленных факторов в применяемой методике используются две группы тестов из набора Eurobench, в которых целенаправленно изменяется нагрузка на тестируемое оборудование.

Для оценки влияния шаблона обращения к памяти используется группа тестов поэлементного умножения векторов, в которых происходит усложнение доступа к элементам векторов: единичный шаг, шаг 3, шаг 4, по индекс-вектору. Ясно, что при таком усложнении доступа должна происходить деградация производительности. Это и происходит. При увеличении длины вектора производительность на тесте с единичным шагом меняется так: Xeon Phi — увеличивается сначала до 600 MFLOPS, а потом падает до 200 MFLOPS; Sandу Bridge — увеличивается до 3000 MFLOPS, а потом падает до 500 MFLOPS. При усложнении доступа деградация производительности по сравнению с тестом с единичным шагом такова: Xeon Phi — падение сначала до уровня 100 MFLOPS, а с увеличением длины вектора — до 30 и 10 MFLOPS; Sandу Bridge — падение до 1,5 GFLOPS (доступ с шагом 3 или 4) и 700 MFLOPS (доступ по индекс-вектору), с увеличением длины вектора — падение до уровня 200–50 MFLOPS. Итак, при хорошем шаблоне доступа к памяти производительноcть ядра Xeon Phi хуже, чем ядра Sandy Bridge, в 2,5–5 раз, а при ухудшении шаблона деградирует в 6–10 раз, в то время как Sandy Bridge — в 2–10 раз.

Для оценки влияния баланса вычислительных операций и операций с памятью использовалась группа тестов с увеличением количества вычислительных операций на обращение к памяти. Базовый тест этой группы — поэлементное умножение векторов с единичным шагом по элементам. Далее в тестах группы доля вычислительных операций увеличивалась. Предельный тест — вычисление для каждого элемента вектора полинома 9-й степени по схеме Горнера. В этом тесте на одно обращение к памяти приходится 18 вычислительных операций, возможно применение операций умножение-сложение, что в современных ядрах обычно выполняется с темпом один такт. Такое вычисление обычно позволяет приблизиться к пиковой производительности ядра. В проведенных исследованиях этот тест действительно позволил получить максимальную реальную производительность, которая вдобавок слабо зависит от длины вектора: Xeon Phi — около 3 GFLOPS (17,86% от пиковой), Sandу Bridge — около 9 GFLOPS (51,14% от пиковой).

Развиваемая на Xeon Phi реальная производительность тем не менее оказалась неожиданно небольшой.

Анатолий Мищенков (a-mischenkov@ya.ru) — СПбГПУ (Санкт-Петербург).

 

Известно, что Xeon Phi, благодаря встроенным в ядра SIMD-устройствам, обладает высокой суммарной пиковой производительностью, а что мешает реальной производительности приблизиться к пиковой? Как в реальном приложении получить производительность, близкую к пиковой? Были сделаны предположения, что ответ на первый вопрос даст детальный анализ причин возникновения больших задержек обращений к памяти, а ответить на второй поможет выяснение баланса вычислительных операций и операций с памятью, при которых можно приблизиться к пиковой производительности.

Для анализа задержек выполнения операций с памятью можно использовать тест одновременного обхода N списков:

while(count — > 0)
 {list1 = list1.next; list2 = list2.next;
    …
    listN = listN.next }

Переход по ссылке next в каждом списке — это новое нерегулярное обращение к памяти. При последовательном выполнении команд, что характерно для ядра Xeon Phi, из-за информационной зависимости операторы тела цикла будут выполняться последовательно. При выполнении команд не в порядке следования, что характерно для ядра Sandy Bridge, операторы выполняются параллельно, но только пока это позволяет микроархитектура ядра. Такое распараллеливание в SandyBridge увеличивает поток операций с памятью, это приводит к появлению толерантности ядра — видимые программой задержки выполнения операций с памятью уменьшаются.

Результаты оценки на таком тесте даны на рис. 1 (XeonPhi, толерантности нет) и рис. 2 (Sandy Bridge, толерантность есть). При больших длинах списков и большом их количестве разрыв величин задержек доходит до 100 раз. Это «цена» простоты или «легкости» ядра микропроцессора Xeon Phi, которая может свести на нет преимущества микропроцессора по пиковой производительности.

Рис.1. Задержки выполнения операций с памятью в одном ядре Xeon Phi для списков разной длины и для разного количества одновременно просматриваемых списков
Рис.1. Задержки выполнения операций с памятью в одном ядре Xeon Phi для списков разной длины и для разного количества одновременно просматриваемых списков

 

Рис. 2. Задержки выполнения операций с памятью в одном ядре Xeon Sandy Bridge для списков разной длины и для разного количества одновременно просматриваемых списков
Рис. 2. Задержки выполнения операций с памятью в одном ядре Xeon Sandy Bridge для списков разной длины и для разного количества одновременно просматриваемых списков

 

Если преобразовать тест обхода N списков, введя несколько тредов, и каждому из них выделить по некоторому количеству списков для обхода, то можно также увидеть появление свойства толерантности — уменьшение задержек обращений к памяти. Это происходит из-за увеличения потока операций с памятью, но уже по причине выполнения в ядре одновременно нескольких тредовых легких потоков, для которых аппаратные средства ядра обеспечивают ничтожно малые времена переключения. В ядре Xeon Phi для двух тредов задержка снижается до 200 тактов, для трех — до 145, а для четырех — до 100. В ядре Sandу Bridge можно запустить только два легких треда, что позволяет снизить задержку до 20–40 тактов. Итак, даже малая мультитредовость ядра Xeon Phi позволяет заметно снизить задержки обращений к памяти, доведя их до уровня отставания от Sandy Bridge в 2–5 раз вместо 100 раз, имевшихся в однотредовом варианте теста.

Знание времен задержек в однопотоковом и многопотоковом режиме позволяет оптимизировать программы, подбирая баланс вычислительных операций и операций с памятью. Для определения такого баланса использовался тест вычисления полиномов по схеме Горнера. Выяснялось, можно ли увеличить реальную производительность Xeon Phi за счет увеличения степени полинома, количества ядер и количества используемых тредов в ядре.

Результаты для полиномов 10-й (20 операций на обращение к памяти) и 32-й степени (64 операции на обращение к памяти) представлены на рис. 3. Видно, что для одного ядра производительность с увеличением количества тредов на ядре заметно растет даже при таком большом количестве вычислительных операций. Заранее это было неочевидно, а для больших длин векторов на полиноме 10-й степени такого увеличения действительно нет. Увеличение степени полинома до 32 позволяет при использовании 4 тредов на ядре выйти по реальной производительности на 70% от пиковой. Увеличение длины вектора, что означает выход за пределы кэш-памяти L2 ядра, заметно снижает реальную производительность, но при большой доле вычислительных операций (полином 32-й степени) это заметно в гораздо меньшей степени, хотя нестабильность измеряемой производительности на больших длинах векторов появляется.

Рис. 3. Производительность при вычислении полиномов 10-й и 32-й степени по схеме Горнера на одном ядре Xeon Phi в зависимости от длины вектора и количества тредов на ядре
Рис. 3. Производительность при вычислении полиномов 10-й и 32-й степени по схеме Горнера на одном ядре Xeon Phi в зависимости от длины вектора и количества тредов на ядре

 

Затем были проведены исследования с целью оценки эффективности использования множества ядер и тредов на тестах с большой долей вычислительных операций. Размер вектора был взят в 1 Мбайт, что больше кэш-памяти L2 ядра и предполагает некоторое количество промахов обращений к L2. Обслуживание промахов в условиях обеспечения кэш-когерентности всех ядер в Xeon Phi — сложный и затратный процесс, зависит от пропускной способности внутрикристальной сети, а она не так уж велика. Полученные результаты измерений пока до 32 ядер показали, что для вектора в 1 Mбайт реальная производительность с увеличением количества задействованных ядер и тредов увеличивается и удерживается на хорошем уровне для полинома с 32-й степенью, а для полинома 10-й степени заметна деградация уже после 16 ядер.

Добиться почти идеального результата по реальной производительности пока удалось лишь на тесте вида a[i] = a[i]*b[i] — c[i] при длине вектора в 16 элементов — 987 GFLOPS (97% от пиковой). На этом тесте обращений к памяти вообще нет, SIMD-операции запускаются на каждом такте, хотя они и находятся в теле цикла. Сказывается возможность запуска двух команд за такт, поэтому затраты на управление циклом здесь не видны, они прикрыты выполнением SIMD-операций.

Проведенное тестирование позволило сделать следующие выводы:

  • Большое количество ядер и тредов Xeon Phi обеспечивает его более высокую толерантность по отношению к суперскалярным микропроцессорам, что можно использовать для эффективного решения информационно-аналитических и других целочисленных задач с интенсивной нерегулярной работой с памятью.
  • Реальная производительность Xeon Phi в операциях над числами с плавающей точкой сильно зависит от загрузки SIMD-устройства, на что отрицательно влияют затраты на работу с памятью. Для обеспечения эффективности необходимо: использовать все треды ядра; стремиться к максимальной пространственно-временной локализации данных в ядре; обеспечить в десятки раз превосходящую долю вычислительных операций по отношению к операциям с памятью.
  • Применение большого количества ядер при ограниченной по пропускным способностям внутрикристальной сети и интерфейсов с памятью настоятельно требует применения новых технологий по их оптимизации. Кроме этого, необходимо усовершенствование применяемых моделей вычислений в плане сокращения обращений к памяти (потоковые модели), повышения асинхронности вычислений и толерантности к задержкам (мультитредовые модели и модели с разделением вычислительных процессов и процессов доступа к данным).

Измерения показали, что воспользоваться в реальных приложениях высокой пиковой производительностью Xeon Phi непросто, что и учли разработчики TH-2, инициировавшие проект реализации новой среды программирования OpenMCC [1] на замену OpenMP, СUDA, OpenACC и OpenCL. Среда OpenMCC учитывает унификацию по системе команд ядер Xeon Phi и применяемых суперскалярных микропроцессоров, что позволяет свободнее проводить разделение работ между разными ядрами, управлять балансом загрузки ядер в процессе счета, повысить локализацию данных и вычислений, оптимизировать обмены. У разработчиков это не первый опыт создания автоматизированных средств параллельного программирования больших гибридных систем — для Tianhe-1A была создана программная инфраструктура TH-HPI [2], которая кроме обеспечения эффективности делала прозрачной для пользователя гибридность системы.

Следует напомнить, что базовая для TH-2 операционная система Kylin Linux оптимизирована для работы на многоядерных и мультитредовых системах, поддерживает средства виртуализации, позволяющие создавать гетерогенные облачные среды повышенной защищенности и включающие ресурсы гибридных вычислительных узлов, ресурсы сервисных узлов на массово-мультитредовых микропроцессорах FT-1500.

«Потомки» Xeon Phi для экзамасштабных систем

Создание массово-многоядерных мультитредово-потоковых микропроцессоров типа Xeon Phi — неизбежность современной индустрии HPC, а их недостатки (слабость внутренних и внешних интерфейсов, малая тредовость для обеспечения толерантности) непременно будут устраняться в микропроцессорах нового поколения, но того же типа. В качестве примеров таких будущих микропроцессоров можно указать на два создаваемых перспективных микропроцессора с производительностью более 10 ТFLOPS: микропроцессор проекта Echelon (NVIDIA и Сray) и микропроцессор проекта Corona (HP).

Гибридный микропроцессор проекта Echelon (ориентирован на технологию 10 нм) содержит 8 суперскалярных ядер и 256 потоковых блоков, в блоке по 8 мультитредовых ядер с поддержкой 64 тредов в каждом с использованием четырех активных тредовых каналов выдачи команд. Треды ядер могут выполняться как в асинхронном, так и синхронном режимах. Общее количество ядер в микропроцессоре составляет более 1032, а количество тредов — более 65 536. Пиковая производительность микропроцессора — 16 TFLOPS, пропускная способность интерфейса с памятью с 16 контроллерами — 2 Тбайт/с, а пропускная способность 16 интерфейсов с межузловой коммуникационной сетью — 0,4 Tбайт/c. В вычислительном узле микропроцессор работает с памятью объемом более 512 Гбайт. Создание экзафлопсной системы на базе такого микропроцессора планируется в 2018 году.

Микропроцессор проекта HP Corona (ориентирован на технологию 16 нм) содержит 256 однородных ядер (4 треда в каждом ядре). Пиковая производительность более 10 TFLOPS, он создается для приложений с интенсивной нерегулярной работой с памятью. Этот микропроцессор интересен применяемыми в нем новейшими технологиями: оптическая (нанофотонная) внутрикристальная сеть и интерфейсы на множестве кремниевых волноводов, в каждом из которых идет одновременная передача информации на 64 длинах волн; 3D-сборка кристаллов с соединениями, обеспечивающими интеграцию в плоскости кристаллов, а не по периметру; оптические соединения между 3D-сборками кристаллов с применением матриц микролинз и миниатюрных лазеров. Внутрикристальная 64-канальная сеть соединяет в кольце 64 кластера, каждый из которых имеет по 4 процессорных ядра. Кластер имеет свой собственный канал из 4 волноводов, каждый из которых одновременно передает информацию на 64 длинах волн. Читать данные из канала может кластер-собственник, а остальные кластеры могут в него только писать. За один такт (5ГГц) по одному только каналу передается 64 байт (кэш-строка). Общая пропускная способность внутрикристальной сети — 20 Тбайт/с. Потребление сети — 39 Вт. Интерфейс с оперативной памятью в HP Corona реализуется через 64 контроллера памяти, каждый по 160 Гбайт/с, энергопотребление памяти составляет 6,4 Вт, интерфейс каждого контроллера — два одиночных волновода по 64 длины волны в каждом, что суммарно оставляет 10 Tбайт/с. Создание экзафлопсной системы на базе такого микропроцессора ожидается после 2017 года.

Подготовка к освоению такой экзотической элементной базы идет уже сегодня — как раз в этом и заключается один из скрытых смыслов применения в TH-2 микропроцессоров типа XeonPhi.

Степени параллелизма и проблемы системного ПО

Степень параллелизма современных суперкомпьютеров, определяемая количеством процессорных ядер, оценивается на уровне 106. Например, Cray Titan, находящийся на втором месте текущего рейтинга Top500 (лето 2013 года), содержит 560 840 ядер, а TH-2 — уже 3 120 000 ядер. В экзафлопсных компьютерах производительность должна увеличиться на три порядка, что возможно за счет роста параллелизма, поэтому количество ядер должно быть не менее 109. Достоверность такой оценки подкрепляется тем, что для обеспечения толерантности к задержкам выполнения обращений к памяти потребуется применение мультитредовой архитектуры ядер, что повысит степень параллелизма еще на 1–2 порядка.

Параллелизм такой степени обеспечивается микропроцессорами типа Xeon Phi, но порождение параллельных процессов на уровне 109 и поддержка их работы в процессе выполнения программ — серьезнейшая проблема для разработчиков системного ПО. Наибольшие сложности ожидают создателей систем поддержки выполнения программ (run-time систем), управляющих процессом выполнения не на уровне ОС, а на уровне пользовательской программы, которые и реализуют новые модели вычислений типа потоковых и мультитредовых. Собственно говоря, сегодня этому посвящено подавляющее количество исследовательских проектов экзамасштабной тематики по линии DARPA и DoE, такие работы ведутся и на TH-2.

Степень параллелизма в системах экзафлопсного и более уровней, в которых будет применяться создаваемая элементно-конструкторская база постмуровской эры, ожидается еще выше. По этой причине в программе DARPA STARnet один из шести центров прорывных исследований нацелен на создание моделей и системного ПО для обеспечения параллелизма уже на уровне 1012.

***

Гибридность суперкомпьютера TH-2, представленная в небывалом еще для мировой практики масштабе, наряду с иерархичностью и гетерогенностью позволяет решать не только сложные научно-технические задачи — этот суперкомпьютер следует рассматривать как уникальную экспериментальную установку для определения требуемых характеристик будущей элементно-конструкторской базы экзафлопсных систем. Не менее важно и то, что этот суперкомпьютер позволяет проводить масштабные исследования по созданию системного ПО, ориентированного на применение новых вычислительных моделей с недостижимым до сих пор уровнем параллелизма.

Литература

  1. Dongarra J. Visit to National University for Defense Technology Changsha, China. June 3, 2013.
  2. Yang Xue-Jun et al. The TianHe-1A Supercomputer: Its Hardware and Software. Journal of computer science and tachnology, 26(3): 344-351, May 2011.
  3. Saule E. et al. Performance Evaluation of Spsrse Matrix Multiplicstion Kernels on Intel Xeon Phi. 5 Feb 2013, 19 pp.

Дмитрий Андрюшин (andryushin@rdi-kvant.ru), Виктор Горбунов (gorbunov@rdi-kvant.ru), Леонид Эйсымонт (eisymont@rdi-kvant.ru) — сотрудники ФГУП «НИИ «Квант»» (Москва). Статья подготовлена на основе материалов доклада, представленного авторами на IV Московский суперкомпьютерный форум (МСКФ-2013, грант РФФИ 13-07-06046г).