Суперкомпьютеры в России
СуперЭВМ являются национальным достоянием, и их разработка и производство несомненно должны быть одним из приоритетов государственной технической политики стран, являющихся мировыми лидерами в области науки и техники. Блестящим примером глубокого понимания всего комплекса соответствующих проблем является статья известного нобелевского лауреата в области физики К. Вильсона. Опубликованная свыше десять лет назад, она и сейчас представляет интерес для российского читателя.
Практически единственными странами, разрабатывающими и производящими суперЭВМ в больших масштабах, являются США и Япония. Свои суперкомпьютеры были созданы в Индии и Китае. Большинство развитых стран, в том числе и ряд государств Восточной Европы, предпочитают использовать суперкомпьютеры, произведенные в США и Японии.
Положение с разработками суперкомпьютеров в России, очевидно, оставляет сегодня желать лучшего. Работы над отечественными суперЭВМ в последние годы велись сразу в нескольких организациях. Под управлением академика В.А.Мельникова была разработана векторная суперЭВМ "Электроника CC-100" с архитектурой, напоминающей Сгау-1. В ИТМиВТ РАН проводятся работы по созданию суперкомпьютеров "Эльбрус-3". Этот компьютер может иметь до 16 процессоров с тактовой частотой 10 нс. По оценкам разработчиков, на тестах LINPACK при N = 100 быстродействие процессора составит 200 MFL0PS, при N = 1000 - 370 MFLOPS. Другая разработка, выполненная в этом институте, - Модульный Конвейерный Процессор (МКП), в котором используется оригинальная векторная архитектура, однако по быстродействию он, вероятно, должен уступать "Эльбрус-3".
Другим центром работ над отечественными суперкомпьютерами является известный своими работами по ЕС ЭВМ НИЦЭВТ. Там был выполнен ряд интересных разработок - различные модели векторных суперЭВМ ЕС 1191 на ECL-технологии и идут работы над новым суперкомпьютером "АМУР", в котором используется КМОП-технология. Ряд организаций во главе с ИПМ РАН ведут работы по созданию MPP-компьютера МВС-100, в процессорных элементах которого используются микропроцессоры i860XP, а для организации коммуникаций применяются транспьютеры Т805. Хотя в наличии имеются опытные образцы некоторых из вышеупомянутых отечественных компьютеров, ни один из них промышленно не производится.
Положение с оснащенностью российских организаций суперкомпьютерами, пожалуй, еще хуже. Мы ограничимся информацией о состоянии дел и перспективах на будущее в исследовательских институтах и вузах, которые, как было сказано выше, являются одними из основных потенциальных пользователей суперЭВМ.
В большинстве инсталляций суперкомпьютеров используется вероятно, продукция фирмы Convex. В нескольких организациях эксплуатируются старые модели минисуперкомпьютеров серий Clxx, С2хх, которые по производительности уже уступают современным рабочим станциям. В Санкт-Петербурге в системе Госкомвуза инсталлирована минисуперЭВМ Convex серии С3800, в Москве в ИПМ РАН недавно установлена суперкомпьютерная система SPP 1000/CD. Имеются планы инсталляции и других суперкомпьютеров (например, SGI POWER CHALLENGE) в ряде институтов РАН.
Между тем отсутствие возможностей применения суперЭВМ сдерживает развитие отечественной науки и делает принципиально невозможным успешное развитие целых направлений научных исследований. Приобретение одногодвух, даже очень мощных, суперкомпьютеров не поможет решить данную проблему. И дело не только в стоимости их приобретения и затрат на поддержание работоспособности (включая электропитание и охлаждение). Существует еще целый ряд причин (например, доставка информации по компьютерной сети), препятствующих эффективному использованию суперЭВМ.
Более целесообразным представляется подход, предложенный российским Фондом фундаментальных исследований. Разработанная "Программа создания комплексных сетей связи и баз данных фундаментальной науки и образования" на 1995-1998 гг. предусматривает организацию целого ряда региональных и предметно-ориентированных суперкомпьютерных центров. В таких центрах могут быть инсталлированы, например, относительно дешевые минисуперкомпьютеры, имеющие лучшее отношение стоимость/производительность. Собственно говоря, достаточно только обратиться к списку ТОР500, чтобы обнаружить явную тенденцию к вытеснению больших (и дорогих) суперЭВМ относительно недорогими суперкомпьютерами, которым уже сейчас под силу решение львиной доли потенциальных задач.
Что касается отечественных суперЭВМ, то без необходимой государственной поддержки проектов по их разработке не приходиться рассчитывать на создание промышленных образцов в ближайшие 1-2 года, и вряд ли такие компьютеры смогут составить основу парка суперЭВМ в создающихся сегодня отечественных суперкомпьютерных центрах.
Суперкомпьютеры - как это?
Ну что, похоже суперкомпьютеры и в самом деле имеют право на существование. Теперь нужно прояснить, по всей видимости, основной вертящийся на языке вопрос - почему они считают так быстро? Вариантов ответа может быть несколько, среди которых два имеют явное преимущество: развитие элементной базы и использование новых решений в архитектуре компьютеров.
Попробуем разобраться, какой из факторов является решающим в достижении современных фантастических показателей производительности. Для разрешения этого вопроса обратимся к историческим фактам. Известно, что на компьютере EDSAC (1949 г.), имевшего время такта 2мкс, можно было выполнить 2*n арифметических операций за 18*n мс, то есть в среднем 100 арифметических операций в секунду. Сравним с современным суперкомпьютером CRAY C90: время такта приблизительно 4нс, а пиковая производительность около 1 миллиарда арифметических операций в секунду.
Что же получается? Производительность компьютеров за этот период выросла в приблизительно в десять миллионов раз. Уменьшение времени такта является прямым способом увеличением производительности, однако эта составляющая (с 2мкс до 4нс) в общем объеме дает вклад лишь в 500 раз. Откуда же взялось остальное? Ответ очевиден - использование новых решений в архитектуре компьютеров, среди которых основное место занимает принцип параллельной обработки данных.
Данный принцип, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: конвейерность и собственно параллельность. Оба вида параллельной обработки интуитивно понятны, поэтому сделаем лишь небольшие пояснения.
Параллельная обработка. Если некое устройство выполняет одну операцию за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если предположить, что есть пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести единиц времени. Аналогично система из N устройств ту же работу выполнит за 1000/N единиц времени. Подобные аналогии можно найти и в жизни: если один солдат вскопает огород за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справятся с той же работой за 12 минут - принцип параллельности в действии!
Конвейерная обработка. Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за одной до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.
Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).
Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! В чем же дело? Ответ прост, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась тысяча автомобилей, то действуя по аналогии с предыдущим примером надо набрать тысячу бригад, каждая из которых (1) в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и (2) сделать это за то же время, что машина прежде находилась на конвейере. Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь. Все современные микропроцессоры, будь то Pentium II или PA-8200, MIPS R10000 или Power2 SuperChip используют тот или иной вид параллельной обработки. На презентациях новых чипов и в пресс-релизах корпораций это преподносится как последнее слово техники и передовой край науки, и это действительно так, если рассматривать реализацию этих принципов именно в рамках одного кристалла.