НАУКА И БИЗНЕС

Компьютеры ("железо") покупают, чтобы пользователи могли решать на них свои задачи с помощью прикладного софта. Софт производят разработчики, применяя для этого инструменты, главным компонентом которых являются компиляторы языков программирования. И хотя создание компиляторов - это старейшее направление фундаментальных исследований в области ИТ, возникшее почти одновременно с появлением собственно компьютеров, его актуальность с годами совсем не ослабевает. Потому что продвижение на рынок новых аппаратных архитектур напрямую зависит от наличия соответствующих компиляторов. Более того, на темпы продвижения оказывают влияние качество, эффективность и доступность компиляторов. А в деле создания подобных инструментов исключительно важная роль отводится некоммерческим научно-исследовательским сообществам.

Все эти в общем-то хорошо известные, но основательно забытые истины пришлось вспомнить в ходе прошедшего в августе двухдневного семинара международной федерации Gelato по вопросам развития GCC-компиляторов для процессоров Intel Itanium.

Несмотря на то что созданием средств разработки и компиляторов для них занимается целый ряд ведущих ИТ-компаний (IBM, Intel, Microsoft, Sun и др.), на рынке большой популярностью пользуются решения Open Source, среди которых лидером является открытое семейство компиляторов GCC (GNU Compiler Collection). Проект GCC был начат в 1987 г. Ричардом Столлманом, основателем Free Software Foundation (FSF) - организации, распространяющей это свободное ПО по лицензиям GNU GPL и GNU LGPL. Архитектура GCC организована так, что портировать его на новые программные и аппаратные платформы довольно просто.

Проект GCC играет очень большую роль в деле продвижения на коммерческий рынок новых архитектурных решений, и это хорошо видно на примере систем на базе Intel Itanium. Дело в том, что на Западе первыми подобные новинки начинают осваивать научные центры и университеты, которые предпочитают использовать ПО Open Source не только в силу его "бесплатности" (что само по себе немаловажно), но и потому, что они имеют доступ к его исходным кодам для решения собственных исследовательских и образовательных задач. Коммерческие организации на стадии пилотных проектов также часто ориентируются на свободное ПО из соображений экономии. А уж потом, по мере получения бизнес-результатов, начинают вкладывать деньги в более эффективные решения.

Все это хорошо видно на примере GCC для Itanium. Так, на сегодняшний день, согласно опросу, проведенному федерацией Gelato, 70% пользователей платформы Itanium, где применяются различные ОС (Windows, Linux, HP-UX, BSD), предпочитают компилятор GCC. И это при том, что на рынке есть более производительный (на 20-30%), но коммерческий компилятор от Intel.

Само же сообщество разработчиков GCC/Itanium состоит из небольшой группы, ответственной за ядро компилятора (около 30 человек), программистов, поддерживающих определенные языки программирования и целевые машины (около 70 человек), и других программистов (примерно 200 человек). Большинство их проживает в США и Канаде, часть - в Европе (Франции, Германии, Чехии); работают они, как правило, в крупных ИТ-компаниях (IBM, AMD, Google, Intel, Red Hat, SUSE). В нашей стране компилятором GCC занимается Институт системного программирования Российской академии наук (ИСП РАН).

В 2002 г. для ускорения перехода высокопроизводительных вычислений исследовательского и промышленного сообщества на платформу Intel Itanium компания HP и семь ведущих мировых университетов и исследовательских центров основали федерацию Gelato. Сегодня в нее входят около 50 организаций, а спонсорами являются BP, HP, Intel, SGI, а также Itanium Solutions Alliance. Среди целого ряда других исследовательских направлений Gelato решает также вопросы координации и финансирования работ по созданию оптимизирующих компиляторов для Itanium. Первый специализированный семинар по этой теме Gelato провела в январе 2005-го в Женеве, и вот теперь в Москве состоялась вторая встреча, организованная ИСП РАН при спонсорской поддержке российского отделения HP.

Разработчики компилятора GCC для Itanium сделали очерной шаг в совершенствовании инструмента и наметили дальнейшие пути его развития.

Прошедший семинар существенно отличался по форме и содержанию от привычных деловых ИТ-мероприятий. Аудитория слушателей была небольшой (20-30 человек) и главным образом состояла из докладчиков, а сами доклады велись в форме представления и обсуждения результатов работ. Но качественный состав участников был очень сильным - в Москву приехало около десятка ведущих разработчиков GCC/Itanium из Америки и Европы во главе с управляющим директором Gelato Марком Смитом.

Несколько сообщений было посвящено последним новинкам компилятора. В частности, специалисты ИСП РАН рассказали о проектах в этой области, выполняемых по заказу HP. Один из них заключался в добавлении в компилятор GCC поддержки спекулятивных загрузок из памяти, что позволило улучшить производительность на 2% в тестах SPEC CPU2000 и в пределах 11% - в некоторых других. Казалось бы, такое увеличение не очень значительно, но суммарные усилия различных исследовательских групп как раз и дают потом полутора-двухкратное повышение эффективности. В свою очередь, сотрудники Intel рассказали о достижениях в создании компиляторов для Itanium.

И все же главная задача мероприятия заключалась в разработке программы работы федерации Gelato по развитию компилятора GCC на 2006-2007 гг. Именно этому был посвящен второй день семинара. Основными направлениями работы были определены следующие: возможность подключения инструментов третьих фирм для выполнения статистического анализа, продолжение исследований в области оптимизации, реализация механизмов динамической компиляции.