Будущее за параллельными вычислениями
Интервью с И.Р.Агамирзяном, директором по стратегии в области науки и технологий, Microsoft в России и СНГ
КомпьютерПресс: Какие наиболее важные технологические события в сфере ИТ-индустрии вы могли бы отметить в уходящем году?
Игорь Агамирзян: Я считаю, что самое важное событие 2006 года — это вход на уровень массового коммерческого использования многоядерных процессоров. Они чрезвычайно быстро развиваются: недавно стали доступны четырехъядерные процессоры. Это революционное событие, которое изменит индустрию с точки зрения не только аппаратуры, но и программного обеспечения. До недавнего времени процесс развития ПО шел экстенсивным путем за счет применения тех преимуществ, которые давал рост производительности процессоров при повышении их тактовой частоты. Этот этап сейчас заканчивается, а на следующем этапе индустрия ПО будет развиваться за счет технологий параллельного программирования. Это важно в плане развития и ИТ-индустрии, и программного обеспечения, это важно и для Microsoft, так как можно ожидать появления продуктов нового поколения.
Значительным событием для нашей компании стал также выпуск летом 2006 года Microsoft Compute Cluster Server 2003, который дает возможность работать с высокопроизводительными параллельными системами.
КП: Что интересного произошло в 2006 году в области программного обеспечения?
И.А.: Важнейшим событием 2006 года, безусловно, стал выпуск новой операционной системы Windows Vista и офисного пакета Microsoft нового поколения Microsoft Office 2007.
Однако если говорить о глобальном тренде развития программного обеспечения (а не только ПО от Microsoft), то у меня такое ощущение, что проблем было больше, чем решений. Связаны они в том числе и с появлением параллельных систем. Параллельность на серверной части существует уже давно, многие серверные фермы благополучно решают большое количество однотипных задач и соответственно позволяют оптимизировать использование вычислительных ресурсов традиционными методами. А вот появление параллельных систем на десктопе — это революционное изменение.
КП: Каковы перспективы развития ПО в параллельных системах?
И.А.: Учитывая, что развитие ПО на классических последовательных системах шло от программирования в кодах к языкам уровня ассемблера, затем к языкам высокого уровня и объектно-ориентированным, можно сделать вывод, что для параллельных систем будет характерна аналогичная закономерность, но в ортогональном измерении. Если вначале существовали проприетарные системы и протоколы, которые, можно сказать, программировались в «параллельных кодах», то сегодня появился и стал индустриальным стандартом MPI (Message Parsing Interface) — он соответствует уровню языка ассемблера, а до языков высокого уровня и объектных моделей в параллельном программировании еще никто не дошел ни в исследованиях, ни тем более в производстве.
КП: Какие наиболее значительные события 2006 года вы можете отметить в сфере интернет-технологий?
И.А.: Наиболее существенным событием в этой области я считаю появление технологии DeskTop Integration, предусматривающей переход от модели явной работы в Интернете к модели неявной, то есть использование web-сервисов, когда интеграция с чем-то в Интернете становится прозрачной для пользователя. Вы не идете непосредственно на какой-то сайт, чтобы посмотреть, что на нем, а работаете в своей привычной среде, и при этом происходят некоторые удаленные от вас процессы, вам подкачивают информацию, позволяют что-то посмотреть или сделать, не выходя из привычной и удобной среды. Это, на мой взгляд, очень важное достижение.
КП: Сегодня много говорят о технологии Web 2.0, причем отношение к ней самое разное — от восхищения до скепсиса. Какова ваша оценка Web 2.0?
И.А.: На мой взгляд, вокруг концепции Web 2.0 поднята большая маркетинговая шумиха. Хотя некоторые новые технологии действительно позволяют повысить привлекательность и удобство использования web, назвать их революционными в плане технологии, по-моему, нельзя. Просто на данном этапе развития web социальные эффекты оказываются важнее технологических, то есть произошел переход количественных изменений в качественные, что мы сейчас и наблюдаем.
КП: Но, наверное, для применения этого социального капитала нужны новые технологические решения, возможность поддерживать те же социальные сервисы, социальные сети?
И.А.: Конечно. Тем не менее трудно назвать поддержку социальной сети новой технологией. Более интересной в развитии web является возможность агрегации данных из разных источников — эта технология важна и для бизнеса, и для науки, и для социальных приложений. В данной области видится целый ряд проектов.
В качестве примера расскажу о двух из них. Первый называется ESSE (Environmental Scenarios Search Engine) и осуществляется Microsoft Research совместно с Геофизическим центром Российской академии наук и Университетом в Боулдере (США). Он направлен на создание распределенной системы доступа к данным из области геофизики, климатологии и т.п. В мире работает множество обсерваторий, только в России их сотни, и массивы данных, накопленные за десятки лет наблюдений, просто огромны. В них можно находить новые закономерности, сравнивая наблюдения, которые делались в разных точках Земли в один и тот же момент. Раньше это было невозможно просто по техническим причинам. Сейчас, при наличии Интернета и веб-сервисов, такая задача выполнима. В частности, в ESSE можно строить запросы типа «найти все точки на Земле, в которых в такой-то момент времени была такая-то температура» или «найти все моменты времени, когда в такой-то точке была такая-то температура и определенный перепад атмосферного давления» и т.д. Такие запросы автоматически распределяются по хранилищам данных разных владельцев.
Другой, идеологически близкий проект (который, кстати, стал первым проектом, доказавшим работоспособность подобного рода систем и полезность такого подхода для научного сообщества) — это «виртуальная обсерватория» (International Virtual Observatory). Его целью является агрегация астрономических данных, рашающая, в принципе, ту же самую проблему: в мире много астрономических обсерваторий, которые располагают огромными массивами данных, архивами наблюдений на фотопластинках, доступными только им самим. Если реализовать распределенный доступ к таким данным, то можно получить качественно новые научные результаты, потому что увидеть полный срез информации до этого было невозможно. Один и тот же объект мог наблюдаться разными обсерваториями, но эти данные не сопоставлялись. При участии Microsoft в этой области был реализован проект под названием Sky Server.
КП: Какую роль выполняла компания Microsoft в этих проектах?
И.А.: Microsoft традиционно считается производителем продуктов для бизнеса, для частного использования, для развлечений и т.п., однако сейчас научно-инженерные исследования являются очень важным направлением стратегии компании. При этом, по моим оценкам, рынок научных и инженерных вычислений — один из самых быстрорастущих. Он пока не очень велик в абсолютных размерах, но по темпам роста опережает корпоративный.
Традиционно в этой области работало несколько узконишевых компаний типа Cray. С развитием массовых технологий и глобальных сетей на стандартизованных протоколах многие вычисления, которые раньше производились на очень дорогих системах, стало возможным выполнять на относительно дешевом оборудовании.
В 1991 году самая высокопроизводительная система в мире Cray имела производительность 10 гигафлоп и стоила 40 млн долл. В 1998 году аналогичную вычислительную мощность имела система на базе Sun Sparc II стоимостью 1 млн долл.
Сегодня производительность 10 гигафлоп дает вычислительный кластер под управлением Microsoft Cluster Server за 4 тыс. долл. Соответственно за 15 лет стоимость 1 гигафлопа упала в 10 тыс. раз. Сегодня вычислительные кластеры, доступные самому широкому кругу инженеров-исследователей, по мощности сравнимы с уникальными комплексами десятилетней давности, которые были доступны лишь единицам. Это обеспечивает переход количества в качество, а возможность доступа по Сети к географически распределенным данным, к разного рода центрам хранения данных — новый уровень качества.
КП: Насколько мне известно, одна из технологий, позволяющих объединить по Сети вычислительные мощности, — это грид. Насколько активно она развивается?
И.А.: Концепция грид, конечно, развивается, но, на мой взгляд, она, если так можно выразиться, жестковата. Грид предусматривает выполнение двух операций: объединение вычислительной емкости и распределение данных по Сети, — и обе они производятся по очень жестким, заранее детерминированным правилам. В жизни все оказывается более гетерогенным. Технологии, связанные с веб-сервисами, являются гораздо более гибкими, чем грид, поскольку позволяют делать то же самое и при этом полностью абстрагироваться от архитектуры и программного обеспечения каждого конкретного узла. В связи с этим могу отметить, что в данной области у России очень сильные позиции.
КП: Не могли бы вы назвать конкретные отечественные коллективы? А то мы обычно слышим, что Россия утратила свои позиции в компьютерных науках. Я думаю, было бы интересно узнать, какие наши коллективы работают на мировом уровне.
И.А.: Это целый ряд исследовательских групп в университетах и институтах РАН, ведущих работы в области параллельного программирования, распределения вычислительных ресурсов и т.п. Данная область исторически развита у нас еще с советского периода, накапливается новый опыт, некоторые команды работают на мировом уровне, что, в принципе, нехарактерно для нашей компьютерной науки.
В частности, в области параллельного программирования мы активно сотрудничаем с Институтом программных систем РАН из Переславля-Залесского. Очень сильные команды в НИВЦ МГУ и Нижегородском государственном университете, есть также хорошие команды в Новосибирске и Санкт-Петербурге. В Советском Союзе вычислительная техника была труднодоступна, поэтому получение высокой мощности за счет использования большого количества однотипных систем стало естественным выходом. В Америке можно было инвестировать разработку суперкомпьютеров, а в России шли другим путем, развивая параллельные вычисления. Сегодня этот путь оказался магистральным.
КП: Какие долгосрочные прогнозы вы можете сделать относительно развития ИТ-технологий?
И.А.: Я могу здесь высказать только свое личное мнение, касающееся в основном области ПО. Я думаю, что в ближайшие годы наибольшее внимание будет уделяться параллельному программированию, появятся промышленные системы параллельного программирования, которые позволят существенно ускорить процесс разработки параллельных программ. Я ожидаю также увеличения интереса к технологиям искусственного интеллекта (ИИ).
В последние годы много инвестиций делалось в разработки по естественному языку и использованию ИИ для организации интерфейсов, на следующем этапе, я думаю, интерес будет смещаться к базовым технологиям типа синтеза программ. Одна из причин этого — та же самая проблема параллельности. Компьютеру все равно, как синтезировать программу — последовательно или параллельно. Традиционные языки программирования — от Fortran до современных типа С++, C#, Java и т.п. — изменились на удивление мало.
Процесс программирования на любом императивном языке — это создание объектов и выполнение операций над ними. Соответственно проблема заключается в том, что если данные операции производятся последовательно, то это относительно просто, а если параллельно, то есть над множеством объектов осуществляется множество операций на множестве процессов, то предсказать результат очень сложно. Поэтому будет возникать все большая заинтересованность в средствах программирования, базирующихся на непроцедурных языках, в которых реализуется не последовательность действий, а определяется результат, который вы хотите получить. А на основе этого система сама планирует последовательность действий.
В теоретическом плане здесь нет ничего нового — все это было известно еще 25-30 лет назад. Кстати, одна из пионерских разработок в этой области была сделана в Советском Союзе — это так называемая система ПРИЗ. В то время она была не очень востребована, поскольку, с одной стороны, класс решаемых таким образом задач был довольно узким, а с другой — было куда развиваться в традиционном программировании.
Сегодня, по моим представлениям, поскольку традиционное последовательное программирование уже сталкивается с ограничениями аппаратуры, актуальность таких подходов будет возрастать. И я ожидаю, что подобного рода исследования будут более активно инвестироваться и через какое-то время появятся промышленные системы синтеза программ, как это произошло с тестированием и верификацией программ. Десять лет назад никто не верил, что такие системы будут использоваться промышленно, но сегодня они уже появляются.
Верификация и тестирование — это огромная проблема для всех производителей программ. Как обеспечить соответствие программы спецификации? В общем виде алгоритмически данная задача неразрешима. Но есть ряд эвристических приемов, которые позволяют создавать системы, постепенно выходящие на промышленный уровень.
КП: Вы затронули тему искуственного интеллекта. В этой области развивается целый ряд технологий: машинный перевод, распознавание жестов, распознавание речи, перевод текста с голоса и т.п. Что вы можете сказать об этих технологиях?
И.А.: Данными технологиями занимаются, но у меня такое впечатление, что в этой области наблюдается некоторый застой. То, что можно было сделать просто, уже давно сделали, но до широкого практического использования многие технологии, например тот же машинный перевод, не дотягивают. Несмотря на наличие готовых продуктов, данная технология эффективна только в некоторых узких областях.
Перевод с голоса вообще распадается на три задачи: анализ исходного языка и формирование текста, собственно перевод и синтез речи на другом языке — это нетривиальная задача.
КП: Даже просто распознавание речи, если говорить о русском языке, и то пока реализовано плохо.
И.А.: Насколько я помню, русский язык является шестым по распространенности в мире. На первом месте, естественно, китайский, на втором и третьем — английский и испанский (не помню, в какой последовательности). Соответственно можно ожидать, что инвестиции в технологии распознавания речи будут делаться примерно в такой же последовательности, так что до русского языка очередь дойдет нескоро.
КП: До сих пор мы говорили о технологических аспектах развития ИТ, а что вы можете сказать об ИТ-рынке? Из данных аналитиков, опубликованных в конце 2006 года, следует, что темпы развития ИТ-рынка в России снижаются. С чем это связано? Возможно, произошло некоторое насыщение рынка?
И.А.: Мне кажется, что рынок в России очень далек от насыщения. Судя по тому, как развивался бизнес Microsoft в России в 2006 году, я не могу сделать выводов о снижении темпов роста рынка.
КП: Отвечая на наши вопросы, вы много внимания уделяли развитию технологий, связанных с массивными вычислениями. Вероятно, вы занимались этой проблемой до работы в Microsoft? Каким был ваш путь в компанию и чем вы занимаетесь в Microsoft сегодня?
И.А.: Я окончил математико-механический факультет ЛГУ, довольно долго работал в Академии наук, в частности в Институте теоретической астрономии, где занимался автоматизацией научной деятельности. В конце 1980-х годов я в течение нескольких лет был сотрудником Института информатики и автоматизации, где как раз занимался параллельными системами. В 1991 году я организовал в Санкт-Петербурге компанию «Астрософт», которая занималась разработкой ПО и стала одним из первых партнеров Microsoft в России. В 1993-1994 годах мы осуществляли проект по локализации Excel, параллельно я вел проекты системной интеграции на основе технологий Microsoft и со временем стал сотрудником в Microsoft Consulting Services. Я работал в региональной штаб-квартире Microsoft, а потом, когда MCS открыли в России, перешел в это подразделение. Затем я работал в Microsoft Research Cambridge, отвечал за связи с университетами в Восточной Европе, в том числе в России. С 2003 года работаю в московском представительстве Microsoft и занимаюсь образовательными проектами и развитием бизнеса в области науки и технологий.
Беседу провел Александр Прохоров