И. Л.: Понадобятся ли более сложные топологии в будущем? Создатели
K Computer описывают свою топологию как 6D-тор. Будет ли размерность увеличиваться в следующих поколениях сетей?
С. С.: Я думаю, что тенденция будущих межсоединений – уменьшение диаметра сети. При этом маршрутизаторы будут обеспечивать бо'льшую, чем сейчас, пропускную способность. Dragonfly позволяет строить путь от процессора к процессору с максимальным числом переходов, равным 5, и примерно соответствует 5–6-мерным торам, но диаметр сети при этом меньше.
В сетях ближайшего будущего короткие соединения будут медными, а те, что подлиннее, – оптическими. Соединения между платами, например. Я думаю, что большинство конструкторов будущих суперкомпьютерных архитектур пойдут этим путем. Хотя, возможно, и внутри одной и той же платы скоро появится оптика. Это, в общем, вопрос стоимости, а стоимость оптики будет уменьшаться, так что многое зависит от рынка.
И. Л.: Суперкомпьютерный вычислительный центр в среднем отличается намного большей плотностью отводимого тепла: все элементы должны быть рядом, чтобы уменьшить задержки. Будет ли эта важная проблема снята, если межсоединения станут оптическими?
С. С.: Да, вычислительная плотность не будет настолько критичной. На большие расстояния узлы по-прежнему разнести не удастся, даже при световых скоростях, но за каждый сантиметр бороться не придется, в этом вы правы. Самая существенная разница между суперкомпьютером и просто облачными серверами – в очень высокой пропускной способности межсоединений. Для суперкомпьютеров сеть нужна более мощная, чем для облачных вычислений. Проще говоря, для сети суперкомпьютеров нужно гораздо больше кабелей. И это, опять же, вопрос денег: чем короче расстояния и кабели, тем, как правило, дешевле решение. Но тут не менее важна другая сторона: я думаю, уже на подходе к эпохе экзаскейла сетевые интерфейсы будут интегрированы в процессорный чип, поэтому сеть будет более производительной и энергоэффективной.
И. Л.: Можно подробней об интеграции? Где ее предел?
С. С.: В интеграции есть три аспекта.
Первый – это интеграция памяти. 3D-stacked memory – «объемная память» – первый шаг в этом направлении. Память если и не интегрируют в процессорный чип, то уж наверняка расположат в одном корпусе с процессором. Пропускная способность возрастет, а потребление энергии уменьшится. Второй: интеграция на уровне процессора. До 90% площади схемы можно отдать под GPU-подобные вычислители, оптимизированные под параллельную обработку, которая будет быстрой и энергоэффективной. Но необходимо по-прежнему иметь несколько не параллельных, а традиционных, последовательных CPU, потому что последовательные задачи останутся. Эти ядра надо оптимизировать под быстрое последовательное выполнение задач в одном потоке. Нет смысла выносить их в отдельный процессорный чип, их надо интегрировать в кремнии или хотя бы в одном корпусе. То есть гетерогенные системы, вроде тех, что создаются сейчас, будут воплощены не на уровне собственно системы из отдельных узлов, а на уровне каждого отдельного процессорного чипа. Это тоже произойдет, видимо, на подходе к экзафлопсной эре. Возможно, это будут ядра с набором команд ARM. ARM стремительно врывается в мир HPC. И третье: сетевые интерфейсы межсоединений также необходимо интегрировать в тот же чип. На процессоре будут тысячи ядер, их соединит внутренняя скоростная сеть, но и внешняя будет подключаться через быстрые интерфейсы. Необходимо явное исполнение операций типа load/store в глобальном адресном пространстве, и то, куда пойдет пакет, будет определяться интерфейсом автоматически: будет ли это коммуникация внутри чипа или надо обратиться к другому узлу.
И. Л.: Дороговизна оптических соединений может оказаться критической: недавний пример IBM, которая отказалась от проекта для Университета Иллинойса, – хорошая иллюстрация для ваших слов?
С. С.: Сеть оказалась сложней для изготовления и дороже, чем они ожидали. Это было удивительное решение, скажу я вам. Раньше IBM так не поступала. Cray уж точно так не поступила бы: для нее это основной бизнес, а не один из многих. HPC для IBM, выходит, чуть ли не хобби. Ну а для Cray отказ IBM – большая удача: теперь они установят эту систему, а в ней, между прочим, вычислительная мощь тоже будет обеспечиваться графическими процессорами. Как минимум 3000 узлов с GPU, а может, и больше.
Похожую ситуацию сейчас можно наблюдать и на рынке процессоров. Видно, что Intel хотела бы активно поучаствовать в HPC, но главная часть их доходов – продажа Xeon. Они начали разрабатывать Lаrrabee и остановили проект. Потом они его оживили, был еще один, совместный с Cray, но вновь не заладилось. Теперь они опять собираются выйти на рынок – на этот раз уже с третьим, можно сказать, поколением Larabee – с Knights Ferry, то есть с еще не доведенным до полностью рабочего состояния процессором, а затем с четвертым поколением – Knight Corner, коммерческой версией. Такое количество поколений до выхода на рынок меня удивляет. И удивляет еще и потому, что инженеры у них очень, очень сильные. Они, безусловно, умеют делать такие вещи. Дело просто в том, что это не основной бизнес Intel. Получилось – хорошо, а если не получилось, ну, ничего страшного, вернемся к этой идее чуть позже. То же, что Blue Waters для IBM. Посмотрим, что будет с MIC, мы следим за этим с большим интересом.
И. Л.: В Японии продолжают производить векторные процессоры. Я имею в виду NEC. Долго ли это продлится?
С. С.: NEC по-прежнему выпускает процессоры линии SX. Это хорошие процессоры, но я не думаю, что они зарабатывают на этом какие-то деньги. Я бы предположил, что это вопрос корпоративного престижа. Ну и потом, они все-таки создали уже немало мощных SMP-машин очень высокой пропускной способности, и для таких машин написано немало работающих приложений. NEC не хочет подводить своих традиционных пользователей. Машины класса SX-9 – по-прежнему среди очень мощных. Они решают специфические научные задачи, где нужен быстрый обмен и быстрый доступ к памяти.
И. Л.: Корпоративная гордость не помешала им, однако, выйти из проекта RIKEN…
С. С.: Да, K Computer остался без чисто векторной секции, которую должна была поставить NEC. Объемы, объемы... Они очень многое определяют в стратегии компании. Cray больше не разрабатывает собственные процессоры, – рынок не позволяет. Это одна из причин, почему я в NVIDIA. Бизнес-модель этой компании позволяет вкладывать большие средства в разработку процессоров нового типа. Технологически в Cray могли бы заняться такими разработками, и понимание необходимости GPU и гетерогенных систем там есть. Но бизнес-модель другая. Я и сам был среди тех, кто принимал решение о прекращении разработок процессоров. И даже когда были заказы на десятки миллионов долларов под разработку Cray и Intel с новыми процессорами, все равно пришлось разработки прекратить, потому что рынок недостаточен для таких сложных и дорогостоящих проектов.
И. Л.: В какой степени современные графические процессоры продолжают идеологию векторных?
С. С.: Классические архитектуры SIMD, конечно, похожи на GPU, которые все же имеют более гибкую архитектуру, потому что разные потоки способны выполнять разные задания. Программирование позволяет более гибко настраивать процессор на конкретные задачи, чем позволяли векторные архитектуры. Но когда идет речь о принципах повышения производительности – очень много общего.
И. Л.: Что самое важное для приложений, использующих всю мощь GPU?
С. С.: Самое главное – подготовить программу к использованию параллелизма. Если он есть в алгоритме, то компилятор сможет привязать его к конкретной архитектуре. Когда начинался проект CUDA, было очень важно дать пользователям инструмент для высокоуровневого программирования. Сейчас очень важный этап – директивы компилятору C и FORTRAN. Программист должен иметь возможность «подсказать» компилятору, где параллелизм использовать, что исполнять на GPU-ядрах. При этом код остается одним и тем же, он будет работать и на CPU. Программист теперь должен тратить свои усилия на выявление параллелизма в приложении, а не на создание версий программ, оптимизированных под конкретные архитектуры. Самое трудное – определить места, где можно распараллелить вычисления без ущерба для надежности. Для этого иногда требуется подробный анализ всей программы. Если, скажем, программа написана на C, то не всегда понятно, что происходит там, куда отсылает указатель. Но автор может «сказать» компилятору: «Не бойся, распараллеливай, все будет нормально». А уж компилятор позаботится о низкоуровневой реализации параллелизма – это все-таки проще.
Директивы хорошо работают. Обычно выигрыш, который дает компилятор с директивой, приближается к тому, что можно получить вручную. Во всяком случае, возможность контролировать работу на низком уровне остается.
И. Л.: Когда создавалась линия Itanium, много говорилось о том, что компилятор возьмет на себя интеллектуальную работу по распараллеливанию, а уж процессор сделает то, что ему скажут. Однако нельзя сказать, что этот безусловно интересный процессор оправдал все ожидания. Не может ли тут получиться некоторой аналогии? Не таится ли здесь опасность для NVIDIA?
С. С.: В чем-то ситуация похожа. Время покажет. Но сейчас у нас очень обнадеживающие результаты. Компилятор прекрасно справляется со своими задачами. А тут как раз и успехи с новыми директивами. Мы и в Cray изучали этот вопрос буквально три месяца назад, перед моим уходом. Технические результаты тестов доступны, так что в этом можно убедиться. Пока все идет хорошо, и нет оснований сомневаться в будущем этой идеологии.
И. Л.: Другая часть интеллектуализации компилятора – работа с внутренней и внешней сетями. Как здесь обстоят дела?
С. С.: Конечно, это не менее важная часть. Здесь у NVIDIA идут работы по совершенствованию GPUDirect. Эта технология позволяет напрямую работать с памятью через межсоединения, через InfiniBand, например. Эта часть коммуникационного стека особенно важна для больших систем, для их масштабирования. Времена задержек становятся критическими, тем более когда мы говорим о глобальном адресном пространстве. Для систем масштабов экзаскейла уже не может идти речь об алгоритмах, основанных на MPI, – имеет смысл говорить об операциях load/store напрямую, нужна более тесно интегрированная сеть.
И. Л.: Как будут системы эпохи экзаскейла «понимать», поближе к каким вычислительным узлам сохранить данные и где искать нужные? Кто должен будет взять на себя большую часть интеллектуальных усилий: системное ПО или приложения?
С. С.: Конечно, распределение данных – это, наверное, самая сложная задача для параллельных вычислений. Большую часть этой работы возьмут на себя приложения, хорошие приложения будут использовать явный параллелизм, они будут определять обмен сообщениями, использовать PGAS, они будут решать проблему более конкретно: определять, какие данные обрабатываются локально и как сделать так, чтобы минимизировать обращения вне узла.
От высокоуровневого распределения данных никуда не деться, оно подразумевается нынешней моделью параллельных вычислений.
При этом остается проблема размещения данных внутри узла – в какой памяти размещать данные во внутренней иерархии памяти.
Эта проблема становится все более и более важной потому, что перемещение данных по кристаллу сейчас энергетически дороже вычислений, оно требует больше пико-Джоулей, чем, скажем, сложение двух чисел.
Локальность данных внутри узла не менее важна, чем локальность на уровне сети, и с этой задачей должен справляться компилятор, он должен уметь определять, где лучше размещать данные.
Когда к основной памяти традиционного типа добавится 3D-стек, непосредственно соединенный с процессором, компилятору надо будет решать, что хранить в нем, а что в основной памяти. Такая работа компилятору по силам, но, возможно, и от программиста потребуется подсказать компилятору, где надо позаботиться о локальности данных, примерно как в ситуации, когда он подсказывает, где рекомендуется распараллеливание при помощи директив. А компилятор будет уже решать эти задачи конкретно для данной конфигурации.
И. Л.: Достаточно ли усилий энергоэффективности для достижения соотношения «1 экзафлопс при 20 МВт»?
С. С.: Сейчас в самых эффективных процессорах этот показатель недовыполнен в десятки раз, но не в тысячи раз. Лучшие достигают 1 Пфлопс / МВт. Ожидается, что экзафлопсная машина будет потреблять 20 МВт, то есть улучшить энергоэффективность предстоит в 50 раз. Часть выигрыша удастся достичь за счет кремниевых технологий. К этому времени это будут, возможно, технологии с разрешением около 10 нанометров. Пороговые напряжения удастся, видимо, несколько понизить. Но остальное придется дожимать совершенствованием архитектур. Не знаю, удастся ли уложиться в 20 МВт. Может быть, удастся уложиться в 30. Да, я думаю, что это реально.
И. Л.: И NVIDIA делает какие-то прикидки по энергоэффективности процессоров для эпохи экзаскейла уже сейчас?
С. С.: Да. Мы проводим анализ в рамках правительственной программы UHPC, которая ориентирована на достижение экзаскейла к концу десятилетия. У нас есть исследовательский проект Echelon – разработка процессоров для будущих экзафлопсных машин. NVIDIA в своих думах об экзаскейле, мягко говоря, не единственная. Сейчас все говорят об эре экзаскейла. И в США, и в Китае, и в Европе, и в Индии, и у вас в России.
Можно точно сказать, что зетаскейловые компьютеры не будут строиться на кремниевых транзисторах. А вот какими они будут – неизвестно. Давайте вернемся к этой беседе в 2020 году, о’кей?



