Летом 2005 года была опубликована очередная, 25-я редакция рейтинга Top 500 самых мощных компьютеров мира (www.top500.org). За прошедшие годы все уже настолько привыкли к постоянной борьбе за лидерство в списке, что существенное внимание стали уделять лишь верхним строчкам, которые ныне занимают BlueGene, Earth Simulator и MareNostrum. При этом сейчас вырваться вперед не так сложно, как десять лет назад, когда шла борьба идей и технологий, — теперь же вопрос во многом сводится к бюджету и политике. По большому счету необходимо лишь желание правительства создать или поддержать свой имидж как руководителя высокотехнологичного государства.

Кластерная революция поставила во главу угла соотношение «цена/производительность», в результате чего список заполонили «штампованные» решения. А массовость скалярных процессоров создала иллюзию исключительной универсальности выбранного направления. Многие с этим свыклись и по инерции интересуются лишь числом процессоров и производительностью очередного лидера, полагая, что «другой альтернативы нет». Но анализ списка позволяет сделать много интересных наблюдений, которые помогают выбраться из плена иллюзий и увидеть реальную картину мира высокопроизводительной вычислительной техники.

Анализ данных, представленных в официальном рейтинге Top500, оправдан по крайней мере, по двум причинам. Во-первых, внимание общественности к этому списку заставляет всех фигурантов представлять себя в наилучшем свете. Во-вторых, открытость списка не позволяет им публиковать явно завышенные данные. Кроме того, такой подход является более объективным, поскольку все заинтересованные стороны находятся в одинаковых условиях. А в случае каких-либо сомнений проверить выводы не составит труда.

Top500 содержит рейтинги компьютеров, которые определяются с помощью теста Linpack — решение системы линейных уравнений с плотной матрицей. Хорош данный способ измерения или плох - это предмет отдельного разговора. Пиковая производительность Rpeak сопровождает описание каждой системы, но места распределяются по реальной производительности Rmax, достигнутой при выполнении теста Linpack. Дополнительно по каждой системе представляется еще ряд характеристик: число процессоров NProc, размер матрицы Nmax, при котором достигнуто значение Rmax, размер матрицы Nhalf, при котором получена половина максимальной производительности Rmax/2, и др.

Взглянем на Top500 немного по-другому, найдя для каждой строки списка значение Ueff = (Rmax/Rpeak)*100%. Смысл данной величины очевиден: чем это значение больше, тем эффективнее работает вычислительная система.

Таблица 1. Компьютеры с максимальной эффективностью из списка Top 500 (июнь 2005)

Как же изменится список Top500, если отсортировать его строки не по Rmax, а по Ueff? Картина станет принципиально иной (табл. 1). Первые пять мест с показателем эффективности более 95% займут векторные компьютеры NEC, а безусловным рекордсменом окажется NEC SX8, установленный в 2005 году в Метеорологическом офисе Великобритании и работающий с эффективностью 98,49%. Интересно, что в списке Top500 семь векторных компьютеров семейства NEC SX разбросаны с 4-й по 489-й позицию, но в таблице эффективности занимают подряд места с 1-го по 5-е плюс 14-е и 30-е. Девять векторных систем Cray X1 в Top500 распределены с 50 по 342 места, а в табл. 1 переместились на позиции с 20-й по 51-ю. Пользователям известно, что векторные системы работают эффективнее скалярных, и приведенные цифры лишь подтверждают это.

Первые 25 мест в таблице эффективности заняты лишь тремя системами: векторными компьютерами NEC SX и Cray X1 и кластерными системами SGI Altix 3700. Первый из компьютеров HP находится на 27-м месте, а компьютер IBM — на 31-м. Компьютеры NEC SX занимают первые пять мест, компьютеры с процессорами Intel Itanium2 — 6-е место, компьютеры на базе процессора Power5 начинают встречаться с 31-го места, на базе Intel Xeon — c 45-го места, а на основе AMD Opteron — с 46-го места. Из 100 последних строк таблицы 72 заняты компьютерами IBM, причем эффективность IBM Cluster xSeries, замыкающего список, равна 16% (175-е место в Top500).

Пятерка лидеров Top500 в новом списке следует далеко не в первых рядах, и это можно было предугадать заранее. Выше всех забрался опять-таки векторный компьютер - 30-е место осталось за NEC Earth Simulator. На 38-м месте расположен SGI Altix 3700, на 75-е и 123-е места попали компьютеры IBM BlueGene/L, а ниже других расположен кластер IBM на базе процессоров PowerPC - 168-е место.

Теперь рассмотрим другую характеристику — отношение размера задачи, при котором достигается половина максимально возможной реальной производительности компьютера Rmax/2, к размеру задачи, при котором тот же компьютер показывает максимальную производительность Rmax. Для каждой строки вычислим значение TN = (Nhalf/Nmax)*100%. Ясно, что для всех современных компьютеров Nhalf < Nmax, причем Nmax — это наибольший размер задачи, при котором соответствующая программа еще помещается в оперативной памяти. Дальнейшее увеличение Nmax неизбежно вызывает свопинг и обращение к диску для подкачки страниц, что сразу снижает производительность.

Предположим, что для некоторого компьютера значение TN1 достаточно мало. Это означает, что уже при относительно небольшом размере задачи Nhalf1 производительность компьютера достигает половины максимального значения (см. рисунок). Такой компьютер быстро набирает «скорость», и значительная доля задач с размерами от Nhalf1 до Nmax выполняется с высокой производительностью. Цифрой 1 на рисунке обозначен примерный график роста производительности R такого компьютера в зависимости от размера задачи N.

Изменение производительности компьютера в зависимости от соотношения между Nhalf и Nmax

Допустим, что для второго компьютера значение TN2 близко к 100% — цифрой 2 на рисунке отмечен график изменения производительности этого компьютера. В таком случае доля задач размером от минимальных до Nhalf2 будет выполняется с крайне низкой производительностью. Чем меньше характеристика TN компьютера, тем быстрее он выходит на максимальное значение производительности. Причем если TN определяет скорость роста производительности R при увеличении N, то площадь фигуры, находящейся под кривой R(N), показывает общий потенциал компьютера при решении исходной задачи. Итак, можно с уверенностью утверждать, что первый компьютер имеет явное преимущество перед вторым.

Вычислим значение TN для каждой строки списка Top500. Немного неожиданно, но, увы, далеко не все производители публикуют значения Nhalf и Nmax — только компания NEC предоставила эти характеристики для всех своих векторных систем. Печальный рекорд поставила корпорация Hewlett-Packard, сопроводившая лишь 7,6% своих вычислительных систем значением Nmax, не говоря уже о Nhalf. Интересно, это небрежность или причина — в другом? Посмотрим теперь, что получается для полностью описанных систем (табл. 2).

Таблица 2. Скорость достижения компьютером половины максимальной производительности (чем меньше значение в последнем столбце, тем скорость выше)

Первые два места по скорости роста производительности занимают новые модели векторных компьютеров NEC. Примечательно, что система NEC SX8 Метеорологического офиса Великобритании, занявшая первое место по эффективности (см. табл. 1), установила рекорд и по показателю TN. В самом деле, в задаче размером 10 240 (Nhalf), а это лишь 2,86% от значения 358 400 (Nmax), 128-процессорный NEC SX8 уже разгоняется до половины максимальной производительности!

Пять из первых семи мест заняли все те же векторные NEC SX. Довольно часто на верхних строках таблицы фигурируют системы на базе процессоров AMD Opteron, а вот Intel Itanium2 среди первых 35 строк появляется лишь один раз. Отрадно увидеть на 9-м месте компьютер «СКИФ К-1000», созданный в рамках суперкомпьютерной программы России и Белорусии. Видимо, немалую роль в этом сыграла высокая квалификация специалистов ИПС РАН и компании «Т-платформы», участвовавших в проектировании и настройке системы. У трех кластеров Dell на базе процессоров Intel Xeon, занимающих в Top500 места 40, 129 и 379-е, показатель TN равен 50%, т.е. функция R(N) близка к линейной. У кластера от Verari на базе процессоров Opteron 2,2GHz, занимающего 300-е место, этот показатель вообще равен 63%, что неудивительно с учетом характеристик коммуникационной сети Gigabit Ethernet.

Далее для каждого компьютера списка Top500 найдем отношение максимального размера задачи к общему числу процессоров в системе, т.е. Nmax/NProc. Данная величина показывает, какая часть задачи приходится на каждый процессор. Несмотря на внешнюю простоту, это сложная характеристика — на нее прямо или косвенно оказывают влияние сразу много факторов: объем памяти на каждом процессоре, сбалансированность скорости работы процессора и памяти, быстродействие процессора, качество коммуникационной сети и др. С одной стороны, такая величина нормирована по числу процессоров, но Nmax - это размер задачи, при котором достигается максимум производительности Rmax уже всей вычислительной системы. Чем выше значение данной характеристики, тем более масштабную задачу способен решить процессор системы и тем лучшие свойства имеет система в целом.

Не секрет, что прикладному программисту параллелизм доставляет лишние хлопоты, вынуждая изучать способы эффективного управления многими объектами. Однако параллелизм необходим, и если приходится выбирать, то при равных пиковых характеристиках система, состоящая из небольшого числа мощных процессоров, будет иметь явные преимущества перед системой со множеством слабых процессоров. Всем известно высказывание «Лучше меньше, да лучше», которое идеально подходит к ситуации с суперкомпьютерными системами.

Таблица 3. Отношение максимального размера задачи к числу процессоров

Отсортируем Top500 по характеристике Nmax/NProc (табл. 3). Первые два места заняли векторные компьютеры NEC, причем система NEC SX8 традиционно лидирует с большим отрывом. В первую десятку вошли 7 векторных машин. Если бы по компьютерам Cray X1E в Top500 были представлены данные Nmax, то скалярным машинам в первой десятке пришлось бы совсем туго. Из пятерки лидеров исходного Top500 выше всех поднялся NEC Earth Simulator, а обладатели максимальных значений Rmax заняли последнее и предпоследнее места (значение Nmax представлено для 147 компьютеров из Top500). Надо сказать, что IBM BlueGene/L с данной характеристикой вообще не дружит — из 25 последних мест полного варианта данной таблицы 16 заняли именно эти компьютеры.

Все это заставляет вспомнить о семинаре, прошедшем в компании Cray Research в 1992 году. На нем обсуждался переход от традиционных для Cray векторных машин к только проектировавшимся массивно-параллельным компьютерам Cray T3D. Суть основного вопроса была сформулирована образно: «Все мы, по крайней мере в общих чертах, представляем, как управлять четверкой лошадей, но как сладить с тысячей цыплят?» Шутки шутками, но сейчас развитие суперкомпьютерной техники больше всего напоминает путь пастуха цыплят. Если в 1960-1980-е годы суперкомпьютерная промышленность прислушивалась к пользователям, предлагая новые «породы элитных тяжеловозов», то теперь она жестко диктует свои условия, заставляя уникальный вычислительный сектор подстраиваться под законы развития рынка массовой продукции. Показательно решение руководства Cray, озвученное в конце семинара: «Следуя рынку, мы вынуждены начать производство массивно-параллельных компьютеров, но векторная архитектура - это ключевая точка настоящего суперкомпьютинга, и мы будем стараться следовать ей и в будущем». Пока так и происходит.

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

Владимир Воеводин (voevodin@parallel.ru) — заместитель директора Научно-исследовательского вычислительного центра МГУ им. М. В. Ломоносова (Москва).