ОБЗОРЫ

По оценкам IDC, рынок высокопроизводительных систем демонстрирует стабильный рост (9% в год) и увеличится с 9,2 млрд. долл. в 2005 г. до 14,3 млрд. к 2010-му. Оборот этого рынка может быть и большим, но сдерживающую роль играет нехватка прикладного ПО для массовых параллельных систем с многоядерными процессорами. Однако данная проблема не смущает крупные вычислительные центры, которым и так не хватает ресурсов для решения текущих исследовательских задач.

Европа соревнуется с США

В I квартале нынешнего года в Европе произошло несколько крупных событий в суперкомпьютерной сфере. Сформирован альянс TALOS, объединивший французский комитет по ядерной энергетике, национальный германский суперкомпьютерный центр в Штутгарте, компанию Bull, выпускающую крупнейшие в Европе кластеры, фирму Quadrics (специализируется на сетях с высокой пропускной способностью) и корпорацию Intel. Альянс займется продвижением инноваций в сфере высокопроизводительных систем. А три немецких суперкомпьютерных центра - имени Лейбница в Мюнхене, при Институте фон Неймана в г. Юлих и Штутгартский - решили объединить свои вычислительные ресурсы, в сумме составляющие 90 Тфлопс, в рамках единого центра имени Гаусса (www.gcfs.eu). Итоговая grid-сеть станет мощнейшей в Европе. Уже к 2009 г. руководство альянса намерено довести ее общую производительность до 1 Петафлопс.

Анонсированные в текущем году терафлопные мощности бытовых чипов AMD и Intel достигнуты разными технологическими путями.

В Гренобле открыт центр тестирования высокопроизводительных систем, средства на который выделили корпорации Hewlett-Packard и Intel. Он вошел в состав глобальной испытательной сети HP HPC Benchmarking Grid, суммарная мощность которой составляет 33 Тфлопс.

Британское правительство выделило 17,4 млн. фунтов стерлингов на проект CFMS Core - разработку ПО для проектирования самолетов, подразумевающую активное использование параллельных высокопроизводительных систем. Проект возглавляет фирма Airbus. По оценкам английского министерства по торговле и промышленности, соответствующий софт к 2012 г. позволит практически полностью отказаться от физического тестирования элементов самолетов, а сроки проектирования сократятся в 10 раз. В дальнейшем наработки проекта распространятся на автомобильную и судостроительную индустрии.

Заработала новая оптоволоконная сеть, которая связала 3500 научных и образовательных структур в 34 странах Европы. Ее создал международный оператор цифровых сетей Delivery of Advanced Network Technology to Europe (DANTE). Соответствующий проект GEANT2 (www. geant2.net) был начат в 2004 г. В ходе работ специалисты DANTE задействовали аппаратуру компании Alcatel-Lucent: интеллектуальное сетевое оборудование 1626 Light Manager, поддерживающее технологию DWDM (плотное мультиплексирование с разделением по длинам волн), и универсальные оптические узлы 1678 Connect MCC для агрегации многопротокольного трафика. В результате пропускная способность оптической инфраструктуры доведена до 400 Гбит/с. Сеть будет использоваться прежде всего для э-обучения, э-медицины, проектов по моделированию климата, предсказанию землетрясений, для био- и астрономических исследований. В перспективе она дополнится поддержкой технологии GMPLS, обеспечивающей автоматическую перемаршрутизацию трафика.

Темпы развития заокеанских высокопроизводительных технологий тоже впечатляют. Корпорация Cray выпускает новую модель суперкомпьютера с петафлопной производительностью. Три машины под условным названием Hood были поставлены в начале текущего года американской Окриджской лаборатории, национальному исследовательскому центру США по энергетике и финскому научному ИТ-центру. Обновленная версия Cray XT4 создана на базе двухъядерных процессоров AMD Opteron, ведутся работы по переводу ее на четырехъядерные чипы. Специальная программа Cray Rainier в перспективе объединит разрозненные технологии эксплуатации процессоров, наработанные в Cray за долгие годы, и все они будут представлены унифицированной инфраструктурой XT4, способной работать даже с программируемыми матрицами. Текущая модель включает 30 тыс. процессоров AMD Opteron, каждый из которых благодаря технологии HyperTransport состыкован со специализированным чипом межсоединения SeaStar2. Последний, в свою очередь, поддерживает шесть подключений по трем измерениям.

AMD соревнуется с Intel

Анонсированные в текущем году терафлопные мощности бытовых чипов AMD и Intel достигнуты разными путями. Набор команд 80-ядерного процессора Intel поддерживает не классический вариант x86, а технологию сверхдлинных командных слов VLIW (статическая суперскалярная архитектура), которую Алан Тьюринг придумал еще в 1946 г., а использовалась она, в частности, разработчиками векторных машин (например, "Эльбруса-3"). Современным примером VLIW-процессора является Intel Itanium. Основная идея технологии VLIW заключается в создании набора команд, ориентированного на параллельное исполнение: группа команд считывается из памяти за одну операцию и затем исполняется за один такт. VLIW хорошо подходит для многоядерных систем, но для получения реального выигрыша необходимы оптимизирующие компиляторы, желательно работающие в реальном времени ("на лету"), и ПО, ориентированное на конкретную аппаратную VLIW-реализацию. Однако создание такого софта пока весьма трудоемко. Интересно, что новый графический чип компании NVIDIA составлен из 128 ядер, и эксперты уже предсказывают намечающийся стратегический альянс NVIDIA с Intel.

Сегодня на смену объектно-ориентированному программированию приходит параллельно-ориентированное, в котором нарастающую роль будут играть функциональные и логические языки.

AMD движется другим путем, пока избегая прямолинейного наращивания числа ядер. Ее технология AMD Stream Processor позволила объединить в терафлопное решение Teraflop in a Box двухъядерный процессор AMD Opteron с набором команд x86 и два графических сопроцессора AMD R600, которые созданы подразделением ATI, влившимся недавно в AMD.

Функциональный подход соревнуется с императивным

В связи с быстрорастущим интересом к параллельным вычислениям исследователи и прикладные разработчики предлагают новые технологические концепции и оригинальные прикладные продукты, призванные обеспечить максимально безболезненный переход от наработок в "однопроцессорном" программировании к параллельному. По мнению издания Intel Technology Journal, решающую роль в таком процессе может сыграть искусственный интеллект. Приложения нового поколения будут ориентироваться на параллельные машины и создаваться в архитектуре Recognition - Mining - Synthesis (RMS). Объем корпоративной и частной информации вырастет столь сильно, что справиться с ним под силу будет лишь интеллектуальным программам. Они станут самообучаться - автоматически формировать модели объектов и событий, которые интересны конкретному пользователю. Такие модели далее будут применяться для анализа данных и отбора нужных знаний, после чего режим синтеза ("что, если") позволит получать новые знания путем комбинирования отобранных "кусочков" информации и разыгрывания сценариев возможного развития ситуации.

Более приземленный подход предлагают ученые Массачусетского технологического института, которые выдвинули концепцию транзакционной памяти. Она позволяет создавать программы для параллельных устройств в стиле, более похожем на программирование для одного процессора. Такая память допускает одновременное обращение множества процессов к одному блоку, а дополнительный монитор следит, чтобы завершающаяся транзакция не вносила противоречий в хранящиеся в памяти данные.

Но пока эти идеи не вышли из научных лабораторий, а рынок требует конкретных продуктов уже сегодня. Создателям параллельных программ будет, безусловно, полезна новая версия математической библиотеки для Фортрана IMSL Fortran Numerical Library 6.0, совершенствуемой фирмой Visual Numerics (www.vni.com) уже 36 лет. Она пополнилась развитыми средствами поддержки параллельных вычислений. При этом от разработчиков не требуется знания принципов создания параллельных и распределенных приложений, достаточно лишь вызывать готовые библиотечные функции, поддерживающие нужную архитектуру. Схожий подход реализован и в пакете Qt Concurrent (labs.trolltech.com/page/Projects/Threads/QtConcurrent), доступном под лицензией GPL для платформ Windows, Linux и Mac. В него включен набор компонентов и классов С++ для создания многопоточных приложений без использования классических низкоуровневых механизмов синхронизации (флажков, семафоров и т. д.). Поддержка параллельной работы уже встроена в сами компоненты. А транслирующая система Sieve фирмы Codeplay (www.codeplay.com) автоматически распараллеливает исходный код программ на С++. В ходе испытаний на сервере из двух четырехъядерных процессоров Intel Xeon 5300 синтезированные алгоритмы подсчета контрольной суммы, трассировки лучей и матричного умножения показали выигрыш соответственно в 7,4, 7,9 и 6,6 раза.

Однако наиболее эффективно, конечно, создание параллельного приложения с нуля. Но для этого нужны особые усилия со стороны программистов. Классические императивные языки программирования для параллельных задач подходят не очень хорошо, а вот функциональные языки распараллеливаются почти идеально. Причем разработчику даже не требуется использовать всевозможные механизмы синхронизации, характерные для процедурных языков, - распараллеливание функциональной программы очень хорошо автоматизируется. Недаром компания Ericsson предлагает для создания распределенных приложений именно функциональный язык Erlang (www.erlang.org), подразумевающий трансляцию в байт-код. Его отличительная особенность - ориентация на процессы. Поклонники Erlang придумали для него слоган "Все является процессом" - по аналогии со слоганом "Все является объектом" прародителя объектных языков Smalltalk.

Пожалуй, сегодня на смену объектно-ориентированному программированию приходит параллельно-ориентированное, в котором нарастающую роль будут играть функциональные и логические языки. Их использование подразумевает значительно более творческое, гибкое, нестандартное рассуждение, нежели в случае программирования на "прямолинейных" императивных языках. Возможно, по мере распространения параллельных архитектур появится поколение разработчиков, воспитанное на функциональных языках, отличающееся глубинным, оригинальным, многомерным мышлением, - и совершит очередную ИТ-революцию.