Рейтинг Top500 служит главной меркой производительности суперкомпьютеров с 1993 года, ранжируя их в соответствии с результатами выполнения теста Linpack [1] по решению системы линейных уравнений. Постепенно данные, собранные для рейтинга, обеспечили возможность выявления технологических и архитектурных тенденций в области высокопроизводительных вычислений [2, 3].
В середине 1980-х годов ежегодно стало проводиться специализированное мероприятие, которое со временем переросло в престижную Международную конференцию по суперкомпьютерам (International Supercomputing Conference, SC), на ней обнародовалась статистика по количеству, странам происхождения и производителям суперкомпьютеров. Вначале суперкомпьютером называли только системы векторной обработки от компаний наподобие Cray, CDC, Fujitsu, NEC и Hitachi, каждая из которых заявляла, что обладает лучшей по какому-то параметру системой для научных вычислений. Но ситуация стала усложняться с появлением малых векторных систем, в том числе и от новых производителей (Convex, IBM), а также с выходом на рынок массово-параллельных систем архитектуры SIMD (Thinking Machines, MasPar) и машин MIMD на скалярных процессорах (Intel, nCube и др.). Простой подсчет количества столь разных по масштабу установленных систем уже не давал ясного представления о тенденциях — нужны были новые критерии для отнесения систем к разряду суперкомпьютеров.
После двух лет экспериментов с различными показателями выяснилось, что оптимальный способ получать репрезентативную картину суперкомпьютерного рынка, способную выдержать проверку временем, — это составлять рейтинг систем, ограниченный определенным их количеством и отсортированный по реальному быстродействию. На основании предыдущих исследований было определено, что условиям попадания в рейтинг удовлетворяют не меньше 500 систем. Так родился Top500.
Оценка быстродействия
Простейший и самый универсальный показатель, по которому можно оценивать системы для научных вычислений, — это количество операций с плавающей запятой в секунду (FLoating Point Operations per Second, FLOPS). Более узкоспециальные показатели — к примеру, время работы программы (time to solution), время выполнения итерации (time per iteration) или время на узел расчетной сетки (time per grid point) — могут оказаться полезнее для определенных применений и позволят делать детальные сравнения, например, между альтернативными алгоритмами с разными уровнями сложности. Но такие характеристики труднее измерить, их области применения более узкие, поэтому к сфере научных вычислений в целом они неприменимы. В принципе, для оценки систем различных типов можно было бы использовать результаты, полученные на разных тестах или приложениях, но это привело бы к разнобою в показателях и затруднило сравнение, поэтому решено было выбрать единый тест.
Поскольку научные задачи обычно требуют комплексных крупномасштабных вычислений, решено было отказаться от специальных тестов — например, для чрезмерно распараллеленных задач, которые могли бы выдавать очень высокие показатели на определенных системах, а в остальном не подходили бы для научных вычислений, — поэтому предпочтение отдавалось тестам, которые бы демонстрировали возможности систем, не будучи ни слишком «тяжелыми», ни ограничительными. Собранные данные должны были показывать приемлемые верхние границы быстродействия, «штрафуя» при этом системы, неспособные решать широкий круг задач научных вычислений.
Понятно, что любой одиночный тест не сможет даже приблизительно отразить производительность большинства научных вычислительных приложений, поскольку слишком велико пространство алгоритмов и реализаций. Тест, используемый в Top500, никогда и не претендовал на подобную универсальность, его назначение — в сборе воспроизводимых, сопоставимых показателей.
Применение единого теста, в котором не задействуются все системные компоненты, необходимые для большинства научных приложений, или который работает эффективнее на определенной компьютерной архитектуре, может привести к тому, что некоторые системы будут демонстрировать показатели быстродействия, неверно указывающие на пригодность таких суперкомпьютеров для научных вычислений. Чтобы свести такую вероятность к минимуму, было решено, что тест должен задействовать все основные системные компоненты и при этом должен быть основан на относительно простом алгоритме, допускающем оптимизацию для широкого круга архитектур.
Linpack
Проведенный в начале 1990-х годов анализ тестов, подходящих для суперкомпьютеров, показал, что у Linpack намного больше, по сравнению с другими, уже полученных и задокументированных результатов, поэтому он позволял составить рейтинг большинства имеющихся на тот момент систем. Достаточно широко использовались также тесты NAS Parallel Benchmarks, которые точнее имитировали работу реальных приложений, но имеющихся результатов хватало лишь на то, чтобы включить в рейтинг не больше 40% ранее представленных систем.
Сегодня тест Linpack критикуют за его простоту. Однако он не является чрезмерно параллельным, что позволило справиться с задачей снижения рейтинга слабосвязанных архитектур, нашедших лишь ограниченное применение в научном сообществе. Существует вариант теста под названием High-Performance Linpack (HPL), в котором размер задачи автоматически адаптируется к системам разного масштаба (в отличие от NAS PB, который рассчитан на системы определенных фиксированных конфигураций). К тому же, в отличие от многих других тестов с переменными размерами, задача HPL достигает наилучшего быстродействия при использовании всей доступной памяти, а не путем манипуляций с малыми задачами, помещающимися в кэш. Благодаря этому существенно снижается потребность в составлении сложных правил и процедур выполнения, которые принуждают к использованию всех ресурсов системы, чтобы имитировать работу широкого круга приложений. HPL также предлагает набор параметров оптимизации, позволяя значительно улучшить быстродействие за счет их подстройки. Все эти особенности сделали Linpack очевидным выбором для рейтинга Top500.
Вместе с тем, выбор Linpack в качестве единственного теста накладывает ряд ограничений. В Linpack количество операций не измеряется напрямую, а подсчитывается по несложной формуле с учетом размера задачи и вычислительной сложности первоначального алгоритма. Поэтому приходится ограничивать изменения и оптимизации алгоритма, чтобы не снижать показатель FLOPS, вследствие чего Top500 не может служить инструментом для анализа развития алгоритмов с течением времени. В принципе, Linpack и HPL, конечно, можно использовать для сравнения алгоритмических усовершенствований, но не в контексте рейтинга Top500.
Тенденции Top500
Хотя Top500 был создан, чтобы регулярно предоставлять статистику о рынке высокопроизводительных вычислений (High Performance Computing, HPC), стало ясно, что не менее ценна возможность отслеживать эволюцию суперкомпьютеров. В любой выпуск Top500 входят как новые, так и старые системы и архитектуры — за шесть месяцев, проходящих между очередными выпусками рейтинга, до недавнего времени (до 2012 года) уровень текучки оценивался примерно в 190 систем из 500. Средний возраст систем, начиная со времени запуска в эксплуатацию, составлял 1,26 года, и многие тенденции можно наблюдать, просто просматривая список Top500, а выборка, состоящая из новых систем каждой редакции рейтинга, позволяет получить обзор самых свежих технологий.
Как показал анализ роста быстродействия в зависимости от времени, производительность увеличивалась заметно быстрее, чем следует из прямой интерпретации закона Мура. На рис. 1 показаны значения производительности для первых и последних систем, а также среднее быстродействие всех систем в Top500. До 2008 года эти кривые росли экспоненциально — показатели увеличивались ежегодно в 1,91 раза (согласно закону Мура, коэффициент ежегодного роста должен был составлять 1,59). По-видимому, ускоренный рост происходил благодаря увеличению числа процессорных ядер у систем из выборки.
Чтобы лучше понять технологические тенденции, обнаруживаемые с помощью данных Top500, из каждого выпуска рейтинга была выделена выборка, включающая как новые системы, так и те, в которых не используются специализированные процессоры с сильно отличающимися характеристиками, в том числе SIMD-процессоры, векторные и ускорители (например, чипы Nvidia или математические сопроцессоры Intel Phi). Среднее количество сокетов для этой выборки показано на рис. 2. Коэффициент ежегодного увеличения количества сокетов в расчете на систему до 2008 года составлял 1,29, чем легко объяснить наблюдаемое превышение темпов роста по сравнению с законом Мура. Однако начиная с 2008 года коэффициент годового роста для последней системы в Top500 составлял лишь 1,55 — медленнее, чем диктует закон Мура. Кривая усредненного быстродействия указывает на аналогичное замедление начиная с 2013 года. Чтобы выяснить причину, было проанализировано быстродействие в расчете на сокет, которое, как видно из рис. 3, постоянно растет по экспоненте с годовым коэффициентом 1,45. Очевидно, растущее количество ядер в расчете на сокет компенсировало стагнацию быстродействия ядра во второй половине прошлого десятилетия.
Снижение общих темпов роста с 2008 года можно отнести главным образом на счет замедления роста числа сокетов и, соответственно, количества компонентов в крупномасштабных системах HPC. Это замедление было небольшим (годовой коэффициент составлял 1,07), однако его влияние оказалось весьма заметным: до 2008 года совокупная производительность систем Top500 за десять лет увеличилась примерно в 1000 раз, тогда как за аналогичный период после 2008 года (если экстраполировать на 11-летний период уже полученные данные) — лишь в 100 раз. Судя по имеющимся данным, эта тенденция обусловлена в основном замедлением роста размера систем, выраженного в количестве процессоров, но не снижением быстродействия самих процессоров. Следствием этого может стать дополнительное сокращение роста производительности по мере приближения к концу десятилетия и прекращение действия закона Мура.
Критика Top500
Все замечания по рейтингу Top500 можно поделить на две группы: требования учета дополнительных параметров и требования о переходе на другие тесты.
Дополнительные параметры
Требования об учете дополнительных параметров обычно касаются системных характеристик: памяти, расхода энергии, дискового пространства, затрат и т. д. Можно согласиться с тем, что дополнительная информация полезна, но, во-первых, для этого необходимо согласованное, четкое определение сведений, которые нужно собирать, а составлять такие формулировки непросто. Кроме того, подобные инициативы потребовали бы немалых затрат ресурсов.
В одних случаях к Top500 добавлялись новые данные, в других — эту задачу поручали сторонним исполнителям. Ряд исследователей создали рейтинги суперкомпьютеров с географической привязкой; такие списки существуют, в частности, в России, Китае и Ирландии — эти рейтинги короче, но в остальном они следуют рекомендациям от составителей Top500. Некоторые аналитики дополняют списки Top500 собственными данными или публикуют тот же перечень, отсортированный по другим критериям (например, Green500, в котором учитываются данные по энергопотреблению). Есть исследователи, анализирующие данные Top500 для собственных целей — например, для прогноза архитектурных тенденций.
Новые тесты
В ряде случаев требования о переходе на другие тесты касаются приложений, для которых быстродействие в единицах FLOPS не является главным показателем. Например, для приложений, интенсивно работающих с данными, начиная с 2010 года публикуется рейтинг Graph500. Но, как показывает этот проект, разработка подходящего теста (и метрики) для нового класса приложений — задача нетривиальная. Базовая задача теста Graph500 состоит в поиске, преимущественно в ширину, по ненаправленному графу. Создатели Graph500 вложили немалые усилия в разработку спецификации теста, однако по состоянию на июль 2015 года измерения были собраны лишь менее чем для 200 систем, среди которых как крупнейшие, так и одноузловые системы, в том числе iPad 3, который уж никак не назовешь суперкомпьютером.
Большинство призывов к переходу на новые тесты основываются на тезисе о том, что Linpack нельзя применять для демонстрации быстродействия приложений. Но Linpack никогда и не предназначался для этого — он был выбран благодаря своей хорошей документированности, простоте оптимизации и нетривиальности, требующей для его выполнения компьютерной системы определенного уровня сложности. В Linpack главный акцент сделан на быстродействии в FLOPS в расчете на ядро, второстепенный — на сетевой производительности. Благодаря оптимизациям тест практически не чувствителен к быстродействию памяти (ее пропускной способности и времени отклика). Тест, у которого оптимальнее сбалансированы все три характеристики, возможно, чуть лучше отражал бы общее быстродействие приложений, и разработчики Top500 приветствуют инициативы по созданию таких тестов и участвуют в них — в частности, в проектах HPCG (High-Performance Conjugate Gradients) и HPGMG (High-Performance Geometric Multigrid). Однако задача создания достаточно простого теста на основе подходящего вычислительного алгоритма, имеющего все преимущества Liinpack, оказалась весьма сложной.
При любых попытках разработать спецификации новых тестов для Top500 необходимо учитывать их возможное влияние на рейтинг и демонстрируемые им тенденции. Тест, который приведет лишь к незначительным локальным перестановкам, возможно, не даст достаточно содержательных дополнительных данных, чтобы оправдать трудозатраты на его разработку. А принципиально новые тесты могут, как и сам Linpack, вызывать сомнения с точки зрения способности представлять сообщество HPC в целом. Поэтому, во-первых, альтернативный тест должен охватить такой же широкий диапазон архитектур, как и Linpack, а во-вторых, будет лучше, если он как можно меньше повлияет на основные наблюдаемые тенденции.
Рекорды быстродействия приложений
Top500 часто критикуют за то, что опубликованные цифры быстродействия для Linpack нередко гораздо ниже, чем производительность на реальных приложениях. К сожалению, не существует других тестов, которые бы предоставляли непротиворечивый набор данных, охватывающих достаточное подмножество суперкомпьютеров за период в два с половиной десятка лет. Но можно собрать данные по рекордной производительности приложений, достигнутой системами, удостоившимися награды Gordon Bell Prize, ежегодно присуждаемой начиная с 1987 года. Основанием для награждения не является какой-либо одиночный тест — вместо этого призовой комитет каждый год выбирает новое приложение с наилучшим быстродействием. Но «наилучшее» не обязательно означает самую высокую производительность — учитываются все аспекты самого приложения и системы, на которой оно работает. Важно, что GBP фокусируется на реальных научных приложениях и поэтому может служить индикатором того, насколько далеко Linpack отошел от реальных уровней пикового быстродействия приложений, а также от того, насколько можно доверять показателям темпов роста, наблюдаемым в Top500.
Лауреаты Gordon Bell Prize с 2000 по 2014 год и лидеры соответствующих выпусков Top500 |
При сопоставлении производительности лауреатов GBP с системами-лидерами из Top500 были получены очень близкие результаты (см. таблицу). На рис. 4 приведен график изменения со временем показателей производительности лауреатов GBP и систем номер один из Top500 — корреляция между двумя этими сериями показателей практически полная. Коэффициент годового роста быстродействия для систем Top500 составляет 1,89, а для лауреатов GBP — 1,85, это достаточно близко, при том что очистка сырых данных по GBP не проводилась.
Среднее соотношение показателей быстродействия GPB и Linpack, приведенных в таблице, — 50%, и даже если из списка лауреатов GBP выбросить очевидные исключения, то соотношение останется на уровне 45%. Хотя показатели быстродействия GBP, возможно, не более репрезентативны, чем показатели Linpack, наблюдаемая высокая корреляция указывает на то, что по Linpack по-прежнему можно судить о верхней границе реальной производительности приложений. Более сбалансированный тест мог бы уменьшить существующий разрыв примерно в два раза, но, вероятно, его сочли бы чрезмерно требовательным, если бы уровни производительности в нем оказались намного ниже, чем в GBP. Из рис. 4 видно, что столь незначительное изменение разрыва не оказало бы существенного влияния на наблюдаемые долговременные тенденции.
К экзамасштабным вычислениям
С приближением экзамасштабной эпохи темпы роста пикового быстродействия и производительности приложений явно замедлились; в следующее десятилетие исторически сложившиеся тенденции замедлятся почти на порядок. Еще более серьезного замедления можно ожидать, когда на рост быстродействия в расчете на сокет начнут влиять какие-либо изменения в действии закона Мура или полное прекращение его действия.
Любое подобное замедление в конечном счете откроет перед производителями возможности получения конкурентных преимуществ за счет более сильной архитектурной дифференциации. Что касается научных вычислений, следствием, скорее всего, станет повышение сложности оценки пригодности для них разных архитектур и их потенциального быстродействия без детальных измерений с помощью специализированных тестов и приложений. На первый взгляд, в связи с этим можно прогнозировать предстоящее снижение значимости Top500, однако этот рейтинг не предназначался в качестве ориентира для решений о закупках или проектировании архитектур — для этих задач необходим анализ на реально применяемых научных приложениях.
Если дополнить Top500 более сбалансированным тестом, это может привести к небольшой корректировке рейтинга и дать дополнительные сведения для анализа, но, чтобы гарантировать пользу и управляемость такого теста, он должен быть простым и масштабируемым, а также поддерживать широкий круг реализаций, оптимизаций и аппаратных архитектур.
Нынешний подход к составлению Top500, конечно, неприменим для принципиально новых архитектур, например нейроморфных и квантовых компьютеров, и если начнет развиваться рынок таких систем, то придется разработать узкоспециальные методики тестирования и составления рейтингов подобно тому, как это произошло с информационно-емкими вычислениями. В основу проекта вроде Top500, в рамках которого идет сбор данных для анализа рынка HPC и долгосрочных технологических тенденций, лучше всего положить широко применимый тест, достаточно гибкий для того, чтобы хорошо спроектированные системы случайно не попадали в аутсайдеры, но при этом достаточно требовательный, чтобы отсеивать архитектуры, не удовлетворяющие запросам сообщества пользователей научных вычислений.
Создатели рейтинга Top500 признают, что у него есть определенные ограничения, и работают над усовершенствованиями, но при этом выражают уверенность в том, что рейтинг продолжает давать важные сведения, которые помогают продвигаться к экзамасштабной эпохе и основаны на реальных данных, а не на маркетинговых заявлениях.
***
На протяжении более чем двух десятилетий Top500 служит самым известным мерилом производительности суперкомпьютеров, однако с ростом разнообразия архитектур становится насущной потребность в специфических тестах для различных приложений. Тест HPL воплощает в себе некоторые аспекты реальных научных приложений — высокие требования к надежности и стабильности систем, к быстродействию и производительности сети, но не позволяет адекватно проверить быстродействие памяти. Альтернативные тесты, созданные в дополнение к HPL, могли бы помочь скорректировать расстановку позиций в рейтинге и улучшить понимание общей картины рынка HPC, но они вряд ли существенно изменят наблюдаемые с помощью Top500 технологические тенденции.
Литература
- J.J. Dongarra, P. Luszczek, A. Petitet. The Linpack Benchmark: Past, Present and Future // Concurrency and Computation: Practice and Experience. — 2003. Vol. 15, N 9. — P. 803–820.
- E. Strohmaier et al. The Marketplace of High-Performance Computing // Parallel Computing. — 1999. Vol. 25. — P. 1517–1544.
- E. Strohmaier et al. Recent Trends in the Marketplace of High-Performance Computing // Parallel Computing.— 2005. Vol. 31. — P. 261–273.
Эрих Штромайер (estrohmaier@lbl.gov) — один из инициаторов создания рейтинга Top500, сотрудник; Ханс Мойер — почетный профессор, Маннгеймский университет (Германия); Джек Донгарра (dongarra@eecs.utk.edu) — редактор Top500, профессор, Университет Теннесси (США); Хорст Саймон (hdsimon@lbl.gov) — соредактор Top500, заместитель директора, Национальная лаборатория им. Лоуренса в Беркли (США).