Окончание. Начало см. PC Week/RE, № 8/2002, с. 30.
В прошлом номере мы начали публикацию интервью с генеральным директором НИЦЭВТ Валерием Викторовичем Митрофановым и начальником сектора высокопроизводительных систем Леонидом Константиновичем Эйсымонтом. Приводимая ниже часть беседы касается в основном проблем, связанных с построением высокопроизводительных параллельных систем и проекта “Скиф”.
Леонид Эйсымонт
Часть вторая. Проект “Скиф”
PC Week: Американцы утверждают, что параллельные компьютеры скоро будут так же широко распространены, как и ПК. Кто у вас главный потребитель таких производительных комплексов?
Валерий Митрофанов: В основном ведущие российские вузы - МГУ им. М. В. Ломоносова, Физтех, МГТУ им. Н. Э. Буамана, Санкт-Петербургский университет и др. Мы их снабдили некоторым количеством комплексов, но теперь вузы постоянно наращивают производительность этих машин. Одна из проблем - сегодня нет хорошего распараллеливающего компилятора, применяется только пакет MPI, который можно использовать в программах на Фортране и Си. Мы включили в свой план разработку подобных компиляторов. Параллельные компьютеры нужны также всем, кто связан, например, с прогнозированием погоды, с моделированием и конструированием новых машин.
PC Week: Нам очень часто приводят данные о производительности суперкомпьютеров на пакете Linpack, интересно, насколько эти оценки далеки от действительности?
Леонид Эйсымонт: Ситуация следующая: Linpack - это программа, которая работает с небольшим количеством обменов между процессорами и хорошо локализуется в кэшевых памятях. Действительно, в мировой практике, да и в России, на Linpack оценивается верхняя граница реальной производительности машины. Допустим, у вас пиковая производительность - 100%. Так вот Linpack показывает производительность примерно 60-70% от пиковой. А нижняя граница реальной производительности оценивается на пакете NASA NPB 2.3, содержащем восемь различных задач, в том числе и очень чувствительных к межпроцессорным обменам.
О самих этих задачах мы знаем практически все - сколько там коммуникаций, сколько вычислений, какой процент промахов в кэш-память идет. Этот пакет дает 5-10% от реальной производительности. В жизни этот показатель где-то посередине. Один из центров Министерства энергетики США дал приз Гордона - Белла программе, эффективность, которой составила 40% от пиковой производительности. А реальные задачи рядовых пользователей обычно оцениваются в 15-20% от пиковой. На некоторых задачах при многопроцессорной обработке происходит снижение производительности до 0,1% от пиковой.
PC Week: Известно, что в многозадачных системах, например в ОС ЕС, производительность с ростом числа задач падала. Чем может быть вызвано падение производительности в многопроцессорных системах?
Л. Э.: У сети, соединяющей процессоры, есть два показателя - пропускная способность (это количество мегабайт в секунду) и реактивность сети. Последний появляется при выходе на счет с участием большого количества процессоров - это так называемая задержка передачи сообщений. Это происходит так. В одном узле вы начали передавать сообщение в момент времени t1, в другом, где вы должны его принимать, первый байт пришел в момент t2.. Все сообщение еще не получено, только первый байт поступил. Вот t2-t1 - это и есть задержка. Понятно, что она зависит от буферизации сообщения и еще многих причин и с увеличением длины сообщения, вообще говоря, увеличивается. Профессионалу обычно достаточно назвать одну цифру, чтобы он сразу понял, с какой сетью имеет дело. Обычно говорят о задержке сообщения нулевой длины. Так вот, у сети Myrinet, широко используемой во многих суперкомпьютерах, измерения показали задержку около 20 мкс. У нас она меньше 4 мкс. На семинаре в Президиуме РАН я показывал результаты исследования, которые года два назад провела фирма Cray. У них приблизительно такие же рекордно малые, порядка 2-3 мкс, задержки. Они искусственно стали эти задержки увеличивать - где-то до 30 мкс - и на большом количестве процессоров показали, как будет себя вести деградация задачи. В этом случае задача не вычисляется, а просто начинает “висеть в сети”. По такому поводу наши математики говорят, что не надо нарываться на плохие коммуникации, надо писать задачи так, чтобы минимизировать обмены.
В этом они правы. Но всегда ли это возможно? На практике мы уже столкнулись с задачами с большими обменами. Например, были задачи - расчет напряжения в коленвале двигателя пятой модели “Жигулей” и расчет статистической прочности охлаждаемой лопатки газотурбинного двигателя. Что получилось - на четырех-пяти процессорах время счета у нас уменьшалось примерно в два с половиной раза, на десяти процессорах оно еще меньше, а на двенадцати время уже стало расти.
У нас есть профилировщики, которые позволяют отделить затраты на коммуникации и вычисления. С использованием этих средств можно узнать, какая была интенсивность многопроцессорных обменов, каковы длины передаваемых сообщений, временны/е диаграммы вычислительных процесов. Для этих задач выяснили то, что и должно было быть, - 80% времени решения съедают коммуникации. То есть задачи в основном обмениваются данными между процессорами. Таким образом, с сетями шутки плохи. Есть и более глубокие проблемы, связанные с рассинхронизацией вычислений. Все эти разговоры - вот мы соберем персоналки, соединим сетью и все будет хорошо - это несерьезно. Так можно решать только некоторые задачи, промышленные применения требуют профессиональных решений.
PC Week: А как же общественная программа поиска внеземных цивилизаций SETI - они привлекли к участию владельцев полумиллиона компьютеров, разбросав по ним куски задачи?
Л. Э.: Это совершенно замечательная программа. Еще можно сказать о проекте GRID, который мы полностью поддерживаем. Но я категорически против вульгарного понимания этих проектов. Миллион мышей - это не один слон. У американцев так вопрос не ставят. У них есть ряд суперкомпьютерных центров с мощными вычислителями, где до 1000 процессоров, включая и вычислительные кластеры с мощными сетями. Так вот, главная ценность GRID - в возможности объединения мощностей этих центров. Действительно, тонкие расчеты, где необходима сильная связанность процессов, т. е. имеются серьезные требования по обменам, в частности, когда считается обтекаемость двигателей или оперения самолета, - тут никуда не деться, это решается в суперкомпьютерных центрах на мощных вычислительных системах с быстрыми межпроцессорными связями. Через GRID можно простыковать эти вычисления, например, если эти двигатели и т. д. - части огромного Боинга, для которого выполняется расчет обтекания в целом. Если обмены не очень сильные, такие задачи можно считать и через компьютерные сети. Но даже тут американцы сейчас переходят на Internet-2 и на новые стандарты.
Американцы, кстати, просчитывают разные архитектуры и коммуникационные сети. Так, для оценки различных сетей у них есть огромнейший полигон кластеров, созданный по проекту Carrier (авианосец). К авианосцам он никакого отношения не имеет, а аналогия появилась потому, что у них сейчас порядка двухсот с лишним вычислительных узлов, разбитых на подгруппы. Каждая подгруппа под своей сетью. Сети самые разные: Myrinet, Giganet, SCI, Giga Ethernet, ATM и все что угодно. Группы узлов - как эскадрильи на палубе авианосца, отсюда и название. Все это исследуется, выявляются сильные и слабые стороны. Но ключевая тема центра, где ведется проект Carrier, - сети SCI, причем создание их новых вариантов. Работы поставлены очень серьезно.
PC Week: Так какая же сеть нужна, если от нее все так сильно зависит?
Л. Э.: Проблема в том, надо ли иметь между процессорами безумно быструю сеть, по которой вообще все мгновенно пересылается. Конечно, это важно, особенно сверхмалые задержки передачи сообщений. Японцы провели исследования: сеть идеальная, нулевые задержки, мгновенно все передается. На задачах все равно деградация наступает. Причина - рассинхронизация вычислений - один процесс дольше вычисляется, другой быстрее, а время от времени происходит барьерная синхронизация, т. е. оба процесса выходят в одну точку и все равно возникают простои.
Тут проблема более фундаментальная - сейчас используются сильно синхронные вычислительные модели. А нужны более асинхронные. С этим уже согласуется подход, который сейчас американцы используют в машине Tera MTA-2. Это мультитредовая машина, а уже появилась Cray MTA-2 - КМОП-ский вариант машины. На сегодняшний день Tera решает подобные проблемы идеально, поскольку в ней один процессор одновременно выполняет много процессов, причем микропроцессов. Сейчас ОС тоже выполняет много процессов, но у них время переключения огромно. В Gray MTA2 время переключения с процесса на процесс - один такт. Получается, что все обмены, а также обращения к памяти прикрыты вычислениями.
PC Week: Это должен быть “навороченный” специальный процессор, с кучей регистров, чтобы контенты переключать...
Л. Э.: Конечно. В современном варианте данное направление называется SMT-архитектура, параллельный мультитрейдинг. Сейчас здесь очень активно работают Intel и Sun, раньше - Compaq по линии Alpha 21464. В чем суть? За один такт команды для функциональных устройств читаются не с одного потока, а с нескольких. Вот у Itanium, например, 17 функциональных устройств, поди попробуй с одного потока их загрузи. У Itanium сейчас первый вариант - однотредовый, а следующий-то вариант, MacKinly, уже мультитредовый.
Теперь, какое отношение мы к этому всему имеем? Дело в том, что худо-бедно, используя “отверточные” технологии профессиональной сборки компьютеров, мы все-таки вышли на машины с 30-50-миллиардной производительностью. А это уже инструмент. На нем мы можем моделировать принципы работы мультитредовых процессоров. При чем есть и российские варианты, например машина академика В. С. Бурцева, которую можно назвать уже постмультитредовой. Дело в том, что в этой машине большая динамика образования и запуска тредов. Он, по существу, скрестил машину потоков данных с ассоциативным процессором. В плане достижения большей асинхронности здесь сделан существенный шаг вперед.
PC Week: Если теперь вернуться к архитектуре “Скифа”, то что лежит в его основе?
Л. Э.: В основе “Скифа” - здравые идеи кластерных систем с высокоскоростными и высокореактивными сетями, реконфигурируемые процессоры, динамическое распараллеливание программ (Е-система, ИПС РАН). Еще одна идея, хотя и не техническая, но, быть может, наиболее ценная - восстановление совместных работ с Белоруссией в рамках Союзного государства. Если говорить о технической части, то в основе систем “Скиф” кластерного уровня лежат наши работы, которые мы начали два года назад, - это ТКС-1 (ТКС - типовая кластерная система). Далее были два образца 20-гигафлопных машин для программы “Скиф”. Об этом писалось в прессе. Каждая наша машина имеет свой номер. Знаковые для нас машины прошлого - ТКС-17, ТКС-18 и ТКС-19. Сейчас уже сдана ТКС-24, другие машины готовятся. Мы сейчас работаем над ТКС30 с фантастически быстрыми вычислительными узлами. Мы обычно работаем в топологии двумерный тор на кольцевых структурах с центральным коммутатором. Сейчас пробуем уже трехмерный тор.
Вообще, тема “Скиф” - очень обширна и серьезна. Сегодня, например, возникли новые направления - внедрение уже полученных по программе образцов техники в промышленность. Этот процесс идет очень быстро, в частности по линии внедрения инженерных пакетов. НИЦЭВТ этим занимается, причем вместе с Санкт-Петербургским политехническим университетом, МГТУ им. Н. Э. Баумана, механико-математическим факультетом МГУ, ведущими промышленными организациями России и Белоруссии.
Это все - работы сегодняшнего дня. Завтрашний и послезавтрашний день - это работы по архитектурам и компиляторам для мультитредовых машин. Это уже новые работы НИЦЭВТ, нацеленные в будущее.
PC Week: Спасибо за беседу.