Баннер
Баннер
31.01.2013 15:23

Что там, в кроличьей норе?

Автор  Андрей Слепухин
Оценить
(1 vote)

Примерную архитектуру будущей экзафлопсной системы можно представить, используя широко известную технологию проектирования «сверху вниз».  Для начала – несколько слов о проблеме экзаскейла как таковой. По своей сути проблема состоит из трех основных частей. Это цель, которую мы хотим достигнуть, – 1018 операций с плавающей точкой в секунду, те тенденции в области микроэлектроники, которые мы наблюдаем, – развитие технологического процесса, архитектуры процессоров, технологий памяти, технологий оптических коммуникаций и других. И, наконец, ограничения, связанные с энергопотреблением системы. Безусловно, это не единственные проблемы, которые возникают при разработке экзафлопсной системы. Но мы не станем касаться ни вопросов надежности, ни вопросов масштабируемости программного обеспечения. Какова же будет общая архитектура подобной системы, насколько будет реально ее построить и ввести в эксплуатацию?

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

Начнем с нескольких примеров уже существующих систем. В первую очередь рассмотрим японскую систему K Computer, которая первая преодолела рубеж 10-петафлопсной производительности.  Для этой системы было построено специальное 3-этажное здание общей площадью более 4000 м2. Помещение, где размещены 918 стоек суперкомпьютера, имеет размеры 50х60 метров. Хотим ли мы, чтобы наша экзаскейльная система была таким же монстром? Следующая система – это Blue Gene/Q, которая является сейчас номером 1 в списке ТОР500. Она выглядит гораздо более компактно – всего лишь 318 м2, 96 стоек. Это гораздо лучше, чем предыдущий пример. Резонный вопрос: зачем нужно увеличивать плотность и уменьшать площадь, занимаемую системой? Если мы не выходим за рамки требований по энергопотреблению, построить здание вычислительного центра, а в нем серверную комнату даже большой площади не так уж и сложно, и стоимость подобных работ будет мала по сравнению со стоимостью самой системы. Основной причиной, которая заставляет нас увеличивать плотность, является интерконнект. В системах большого масштаба возникает много проблем, связанных с интерконнектом. В первую очередь это проблемы, связанные с топологией и прокладкой кабелей. Вторая проблема связана с увеличением задержек, а третья – с энергопотреблением. Начнем с задержек. Простой расчет показывает, что один метр кабеля – это 3.3 наносекунды дополнительной задержки. В существующих системах это не так страшно, но давайте представим систему уровня K Computer. Максимальная длина коммуникаций между наиболее удаленными узлами в такой системе будет порядка 100 метров, а это означает, что мы получим 330 наносекунд дополнительной задержки. Если предположить, что задержка между двумя соседними по топологии узлами будет порядка 300–500 наносекунд (что является вполне реальными цифрами, Blue Gene/Q имеет задержку между соседними узлами 300 наносекунд),  то 100-метровый кабель добавляет от 67 до 100 процентов задержки. При этом даже в таких топологиях, как torus (тор), эта задержка существенна, если даже мы используем короткие кабели, то нам так или иначе придется пройти по кусочкам эти 100 метров, чтобы добраться от одного узла к другому, сильно удаленному. Однако наиболее критичной эта проблема является для топологий с низким диаметром, таких, например, как Dragonfly. В данном случае общая задержка в системе меньше, чем в системе, построенной на базе тороидальных топологий, и, соответственно, негативный эффект от увеличения размера системы и увеличения длины кабелей будет больше.  Следующая проблема связана с тем, как реализовать выбранную нами топологию при фиксированном расположении стоек с вычислительными узлами. Начнем с достаточно простого случая, это N-мерный тор. Преимуществом такой топологии является крайнее простая схема укладки кабелей – они имеют короткую длину. При этом если мы два измерения тора кладем на решетку из стоек в машинном зале, то прокладка кабеля становится простым делом, и мы имеем минимальные длины кабелей. Даже если мы используем больше чем два измерения между стойками, все кабели прокладываются только в двух измерениях – вдоль ряда стоек и между рядами стоек, а их прокладка не представляет большой сложности. О недостатках: как было упомянуто выше, только если мы имеем два измерения тора между стойками, мы получим большое преимущество от расположения стоек в виде прямоугольной решетки и максимально сократим длины кабелей. Также основным недостатком тороидальной топологии является ее диаметр сети, который больше по сравнению с другими. Как следствие, в данном случае мы получаем меньшую бисекционную пропускную способность. Следующий пример – многоуровневая топология Flattened Butterfly. Как и в случае тора, здесь кабели между стойками прокладываются только в двух направлениях – вдоль ряда и между рядами. Эта топология имеет гораздо меньший диаметр, чем тор, но требует гораздо больше портов на маршрутизаторе и поэтому использование ее в полном объеме является проблематичным.

Одна из наиболее перспективных топологий интерконнекта на текущий момент – это Dragonfly, отдельные группы узлов, связанные между собой по схеме «все со всеми». При этом внутри группы топология четко не определена и может быть достаточно произвольна.  Преимуществами подобной топологии являются маленький диаметр сети и высокая бисекционная пропускная способность. Но в случае стандартного расположения вычислительных стоек мы имеем серьезные проблемы с прокладкой кабелей и с большими длинами кабелей. Это происходит из-за того, что от каждой стойки мы должны протянуть как минимум один кабель к каждой другой стойке. Кабели идут при этом в обоих измерениях, как вдоль, так и между стойками. Соответственно, велика вероятность возникновения ошибки при прокладке, к тому же аккуратно проложить кабели подобным образом – большая проблема. И последняя проблема – это энергопотребление, поскольку, имея более короткие кабели, мы можем использовать трансиверы, потребляющие меньше электроэнергии. Это не означает, что в данном случае  пропорционально уменьшится потребляемая мощность, но некоторые преимущества в энергопотреблении возможны.

Однако уменьшать размер системы до бесконечности мы не можем, потому что ограничены снизу плотностью размещения компонентов и энергопотреблением отдельно взятой стойки. Если взять за основу вполне разумную цифру в 50 мВт для общего энергопотребления экзафлопсной системы, то конфигурация подобного суперкомпьютера может выглядеть следующим образом: 256 стоек, причем  каждая потребляет примерно 200 кВт питания. Уменьшать количество стоек означает пропорционально увеличивать энергопотребление стойки. Увеличить его больше 200 кВт представляется проблематичным. Двести пятьдесят шесть стоек прекрасно располагаются в виде решетки 16х16, и максимальное расстояние между стойками при этом (если брать расстояние не по прямой, а только идя вдоль ряда, а потом между рядами, – потому что иначе кабели проложить невозможно) составляет порядка 50–60 метров, что дает нам порядка 150–200 наносекунд задержки. Это достаточно большая цифра, но это меньше, чем у 1000 стоек. При этом производительность одной вычислительной стойки будет составлять чуть меньше 4 ПФлопс.

Перейдем к рассмотрению архитектуры вычислительной стойки. Прежде всего, нужно различать понятия вычислительного узла и узла топологии, то есть одного маршрутизатора, к которому могут быть подключены несколько вычислительных узлов. Мы уделим внимание модульности, а также топологии внутри стойки. Если взять для примера системы семейства Blue Gene, то мы видим 1024 узла в одной стойке, что уже очень плотный дизайн. Предположительно, после интегрирования памяти в одном пэкэдже с процессором в стойке смогут разместиться 2048 узлов. Размещение большого количества представляется весьма и весьма проблематичным. С точки зрения узлов топологии, если мы используем тороидальную топологию, весьма разумным представляется соотношение, когда один вычислительный узел является также узлом топологии. В этом случае, как и в Blue Gene, маршрутизатор интегрирован непосредственно в процессор. Для других топологий ограничивающим фактором является количество портов маршрутизатора: в случае тора оно не очень велико, в случае топологии типа Flattened Butterfly или Dragonfly количество узлов на маршрутизаторе должно быть гораздо больше. В данном случае представляется вполне естественным подключать от четырех до восьми узлов к одному маршрутизатору с большим числом портов, который выполнен в виде отдельной микросхемы. Если говорить о модульности и механическом дизайне, то больше, чем 256 модулей, которые могут быть извлечены и вставлены обратно, достаточно сложно механически разместить в одном шкафу. Также при энергопотреблении 200 кВт на стойку мы вынуждены использовать водяное охлаждение, что весьма перспективно с точки зрения увеличения энергоэффективности систем. Что касается топологий, используемых внутри стойки, то в случае тора здесь все достаточно просто, поскольку одна стойка является  частью этого тора. Если мы говорим про перспективные технологии, например такие как Dragonfly, то в данном случае весьма естественно считать, что одна стойка является группой в терминах Dragonfly. То есть стойки соединены между собой в полностью связанный граф. В данном случае топология внутри стойки не столь важна и она может быть разной, в частности это может быть Flattened Butterfly, гиперкуб или другая топология.

Посмотрим, что получается на уровне одного модуля, если считать, что в одной вычислительной стойке 256 модулей. Мы получаем требуемую производительность чуть выше 15 ТФлопс, один киловатт энергопотребления и до восьми вычислительных узлов в модуле. В момент построения экзафлопсной системы память и интерконнект, скорее всего, будут интегрированы если не на один кристалл, то по крайней мере в один пэкэдж, например многочиповый модуль.   Мы предполагаем, что узел может содержать некоторое количество постоянной памяти, которая расположена в отдельном чипе или чипах, и что эта постоянная память может использовать до 20% общего энергопотребления. Мы также предполагаем, что в этот момент скорость коммуникаций будет составлять порядка 40 Гб/с. Это выглядит достаточно реально: на данный момент для InfiniBand пропускная способность уже достигла 14 Гб/с, в районе 2014 года составит 25 Гб/с для QDR InfiniBand и 100GbE, а в районе 2016 года достигнет 40 Гб/с. Если учесть, что экзаскейльная система должна быть построена в районе 2018 года, то, скорее всего, она будет использовать те технологии, которые будут существовать в момент 2016 года, поскольку проектирование экзаскейльной системы займет достаточно большое время. Таким образом, мы придем к следующим вариантам архитектуры одного вычислительного модуля.

Вариант «А» предполагает максимальное количество: 2048 вычислительных узлов внутри стойки. В этом случае каждый узел будет иметь производительность порядка 2 ТФлопс и потреблять 100 Вт. Система будет иметь тороидальную топологию, маршрутизатор будет интегрирован в микросхему. При этом следует отметить, что такой вычислительный узел будет иметь производительность в 10 раз выше, чем производительность существующего вычислительного узла, например в Blue Gene/Q. В то же время Blue Gene/Q имеет пропускную способность каждого линка

2 ГБ/с. Если мы просто увеличим эту пропускную способность в 10 раз, мы получим, что для каждого линка нам требуется пропускная способность 20 ГБ/с (или 160 Гбит/с), что достигается использованием четырех 40-гигабитных соединений. Эти цифры весьма реальны, и в настоящее время мы не видим большой проблемы их достичь. В то же время количество узлов в такой системе будет несколько выше, чем в Blue Gene/Q, в котором 96 000 узлов, а в системе, которая получается в нашем рассмотрении, – 512 000 узлов. Но следует учесть, что 5-мерный тор, используемый в Blue Gene/Q, является ассиметричным и в одном из измерений имеет размерность 2. Поэтому в нашем случае мы можем легко увеличить размерность этого измерения или добавить еще одно измерение в торе.

Вариант «Б» предполагает использование вычислительных узлов с производительностью в диапазоне 2–4 ТФлопс, соответственно, количество вычислительных узлов на стойку может быть уменьшено до 1024, и в этом случае мы используем один многопортовый маршрутизатор на каждые четыре или восемь узлов. Следует ожидать, что энергопотребление подобного маршрутизатора будет в диапазоне от 100 до 200 Вт. Это вызвано тем, что понадобится высокая пропускная способность, а энергопотребление трансивера с переходом на новый технологический процесс уменьшается не так сильно. В качестве примера можно рассмотреть InfiniBand, когда энергопотребление одного 36-портового маршрутизатора для QDR InfiniBand составляло порядка 90 Вт, а с переходом на FDR InfiniBand  и новый технологический процесс оно уменьшилось и стало чуть меньше 80 Вт, но в любом случае энергопотребление уменьшилось лишь на единицы процентов. Для того чтобы реализовать необходимые топологии, нам потребуется примерно от 48 до 64 портов на маршрутизаторе. Увеличение количества портов на маршрутизаторе приводит к значительному усложнению корпусировки микросхемы, поскольку при этом сильно возрастает количество ножек и требуются специальные технологии корпусировки. В качестве топологии внутри стойки мы будем использовать Flattened Butterfly. В случае с 256 маршрутизаторами и восемью узлами на один маршрутизатор мы будем использовать двухуровневый Flattened Butterfly 16х16, в случае четырех узлов на маршрутизатор и 512 маршрутизаторов мы будем использовать трехуровневый Flattened Butterfly 8х8х8. Топология между стойками – Dragonfly, т. е. полная коннективность между стойками, когда каждая стойка соединена со всеми остальными.

Итак, мы рассмотрели высокоуровневые архитектуры потенциальных экзаскейльных систем. Выглядят ли подобные архитектуры реализуемыми? Да, если посмотреть на текущие роадмэпы развития гетерогенных процессоров, мы, вполне вероятно, сможем достичь необходимой производительности в рамках нашего бюджета по энергопотреблению. Так, ускорители от NVIDIA (Kepler) и Intel (Xeon Phi) имеют производительность более 1 ТФлопс. Соответственно, через два года можно ожидать удвоение производительности, и еще через два года – снова удвоение производительности. Ориентировочно  в районе 2016 года производительность подобных чипов достигнет примерно 6 ТФлопс, правда, при несколько большем энергопотреблении, чем нам требуется. Однако если мы снимем энергопотребление с 6 ТФлопс до 4, то вполне реально достичь требуемых 150 Вт на процессор, включая интегрированную память. Для того чтобы достичь такой плотности и низкого энергопотребления, нам потребуются продвинутые технологии изготовления памяти, такие как трехмерное стыкирование, будет требоваться интеграция памяти в один пэкэдж с процессором. Недавнее объявление компанией Micron технологии HMC показывает, что такая технология не только возможна, но и в принципе вполне готова к производству.  Интегрируя память в один пэкэдж с процессором, мы не только увеличиваем  плотность, но и уменьшаем энергопотребление, поскольку расстояние между процессором и памятью сокращается до нескольких миллиметров на одном пэкедже. Также мы можем несколько уменьшить энергопотребление трансиверов, которые используются для передачи сигналов между процессором и памятью.

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

Еще в этой категории: « На пути к новым антибиотикам

Добавить комментарий


Защитный код
Обновить

Новости

Календарь материалов

« Апреля 2017 »
Пн Вт Ср Чт Пт Сб Вс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30