ИНТЕРВЬЮ

Побывав еще в конце 90-х годов на американском Intel Developer Forum, в выступлении одного из руководителей Intel перед журналистами я услышал примерно такую фразу: "Вы, наверное, удивитесь, узнав, что в Intel - компании, бизнес которой строится на производстве микрочипов, работает программистов больше, чем в самой Microsoft. Вы даже не можете представить себе, ко скольким софтверным продуктам, которые вы получаете от других разработчиков, приложили силы специалисты нашей корпорации". Честно говоря, я этой информации не очень удивился, потому что к тому моменту уже отлично понимал значение ПО для продвижения новых архитектурных микропроцессорных решений.

Да, Intel в общем-то не занимается софтверным бизнесом, но при этом проводит огромный объем разработок, связанных с двумя основными направлениями - созданием экспериментальных технологий и прототипов решений, призванных демонстрировать возможности новейших моделей микропроцессоров, с одной стороны, и производством специализированного инструментария (компиляторы, отладчики, библиотеки функций), с помощью которого можно создавать новые эффективные продукты, с другой. То есть основная цель корпорации - технологическая поддержка независимых разработчиков. И не случайно крупнейшие мероприятия Intel - ежегодная серия конференций IDF, уже давно вышедшая за пределы США, - ориентированы именно на эту категорию ИТ-специалистов.

На проходившем в середине октября в Москве форуме "IDF/Россия" мне удалось узнать о планах развития программных технологий Intel из первых рук - в беседе с руководителем софтверного подразделения корпорации (Intel Software and Solutions Group) Ричардом Виртом. Кстати, у него есть почетное корпоративное звание "старший заслуженный инженер-исследователь" (Senior Intel Fellow) - такой титул имеют только 9 человек из 90 тыс. сотрудников Intel.

Ричард Вирт

PC Week: Как вы можете охарактеризовать роль софтверного направления для компании Intel?

Ричард Вирт: Именно софтверные разработки добавляют ценности нашим ключевым продуктам. Разумеется, мы не собираемся менять существующую сегодня ориентацию на постоянное совершенствование аппаратных компонентов. Однако проектирование и создание эффективного ПО позволяют получать более полные решения. Яркий пример тому - реализация концепции цифрового дома, широко представленная на нынешнем форуме, которая позволяет сделать применение компьютера в домашних условиях еще проще и эффективнее. Intel - это уже не просто компания, которая производит чипы. Мы поставляем платформенные решения, и соответственно стратегический фокус компании немного сместился.

PC Week: Какие софтверные направления развития сейчас наиболее важны для Intel? Например, видно, что компания очень много внимания уделяет многоядерной архитектуре и мобильным технологиям. Что бы вы могли назвать еще?

Р. В.: Во-первых, мультимедиа. Мы в данном направлении работаем уже давно, и сегодня это проявляется в области цифрового дома. Во-вторых, для нас очень важны мобильные коммуникации, позволяющие упростить связь между разными устройствами, например ноутбуком и мобильным телефоном. Сейчас мы вынуждены использовать промежуточный сервер. Но почему бы нам не сделать так, чтобы я мог воспользоваться клавиатурой ноутбука, а ее вывод был перенаправлен на телефон! Еще одна очень актуальная задача - снижение энергопотребления в мобильных устройствах.

PC Week: На форуме вы выступили с пленарным докладом, посвященным инструментам для создания оптимизированного под многопоточность и многоядерность ПО. Как, на ваш взгляд, изменится процесс разработки в результате перехода на многоядерную архитектуру?

Р. В.: Прежде всего разработчики должны будут учитывать, что выполнение разных программ будет проходить параллельно (на нескольких ядрах и в нескольких потоках). Следовательно, необходимо позаботиться о защите данных каждого процесса, что особенно актуально для библиотек. Однако это уже достаточно известная проблема, решения которой давно проверены на встроенных системах. Еще одним вопросом, пожалуй, является само разделение кода на потоки. В этой области существует очень много техник, которые напрямую зависят именно от кода (от реализованных в нем алгоритмов).

PC Week: Как вы считаете, основной вес проблемы параллельных вычислений ляжет на плечи самых крупных разработчиков программных платформ или на конечных разработчиков?

Р. В.: Думаю, с этой задачей столкнутся и те и другие. В течение последних нескольких лет мы активно сотрудничаем со всеми основными программистами в мире. Сейчас наша компания начинает двигаться еще и в направлении не столь крупных компаний. То есть мы пытаемся охватить разработчиков любого масштаба, чтобы облегчить процесс перехода на многоядерную архитектуру. Для этого мы, во-первых, предоставляем совместные тренинги для разработчиков. На мой взгляд, это очень важно. Во-вторых, мы сотрудничаем с университетами.

Дело в том, что во многих университетах не читаются курсы по параллельным вычислениям и методикам распараллеливания кода. Как раз сегодня мы впервые в регионе EMEA (Европа, Ближний Восток, Африка) подпишем соглашение, по которому наши специализированные курсы (в том числе и по обсуждаемому вопросу) будут лицензированы для использования в Саровском физико-техническом институте. Это довольно символично, что подобная активность Intel начинается именно в России. Мы сотрудничаем с российскими университетами с 1992 г., и данное соглашение будет вехой на нашем общем пути.

PC Week: Как вы оцените готовность различных платформ разработки к использованию технологий распараллеливания?

Р. В.: Java изначально включает в себя механизм создания параллельных вычислений. Правда, она обычно имеет дело с небольшим числом потоков (в среднем - около четырех), и для работы с шестнадцатью или тридцатью двумя процессами нужно будет использовать специальные средства, создаваемые в том числе и нашей корпорацией. В плане поддержки параллельных потоков .NET схожа с Java. А вот при использовании Си, С++ или Фортрана разработчикам приходится добавлять вручную потоки в программах, потому что данные механизмы не являются интегральной частью этих языков. Хотя и здесь многие наши компиляторы умеют автоматически создавать параллельный код.

Но в любом случае использование многопоточности подразумевает более высокую квалификацию разработчиков, знание ими различных методов распараллеливания. Изучение этих алгоритмов должно быть включено в университетские программы подготовки программистов.

PC Week: Будет ли получен эффект от переноса в многоядерную архитектуру приложений, которые создавались для традиционных процессоров?

Р. В.: Все зависит от конкретного приложения. Если рассматривать такие задачи, как прогноз погоды, то они уже были распараллелены в прошлом для работы в больших кластерах и, следовательно, могут эффективно выполняться на многоядерных процессорах. Многие программы, особенно серверные, уже сейчас разделены на потоки, но в будущем им придется использовать еще большее количество потоков. Кстати, все, что мы сейчас делаем в рамках концепции цифрового дома, уже разделено на потоки и учитывает многоядерный подход.

PC Week: А что дают многоядерные процессоры по сравнению с технологией Hyper-Threading, которая также нацелена на поддержку многопоточности?

Р. В.: Разница между несколькими ядрами и Hyper-Threading состоит в том, как именно используются ресурсы чипа. В Hyper-Threading есть два набора регистров, но кэш и внутреннюю шину различным потокам приходится делить между собой. Этот подход позволяет использовать меньше транзисторов и добиться масштабирования порядка 30%. Больше не получается именно из-за ресурсов шины. А вот при использовании нескольких ядер ничего делить не надо. Хотя для этого приходится использовать больше транзисторов на чипе, но переход на новые технологические нормы (с 90 на 65 нм) позволяет сделать это, причем даже со снижением энергопотребления. К тому же в течение следующего года мы планируем переходить уже с 65 на 45 нм, что позволит нам удвоить число ядер.

PC Week: Лет десять назад деятельность Intel ассоциировалась с DOS и Windows. В последние годы вы заметно расширили поддержку других программных платформ. Например, всем известны усилия Intel по поддержке Linux. Однако не видно движения вашей компании в сторону платформы Java. Есть ли какие-нибудь планы в этом направлении?

Р. В.: На самом деле мы очень много внимания уделяем Java. Мы сделали две вещи. Во-первых, наладили взаимодействие с ведущими поставщиками Java-машин (IBM, BEA) для оптимизации этих средств под нашу архитектуру. Во-вторых, намного более интересны усилия в области Java для Open Source. Наши российские разработчики работают именно в этом направлении, участвуя, например, в проекте Harmony, запущенном сообществом Apache с целью создания открытой версии Java.

Мы решили задействовать довольно серьезные ресурсы для того, чтобы Java работала на наших процессорах очень хорошо. Но не стоит забывать, что самой Java уже десять лет. Думаю, ее пора переписать, сохранив совместимость, но повысив производительность и эффективность. Сегодняшние процессоры просто стали намного быстрее. Нужно также использовать преимущества многоядерной архитектуры для повышения эффективности Java.

PC Week: А мы в ближайшее время не увидим от Intel какого-либо компилятора или виртуальной машины Java?

Р. В.: Мы сконцентрировали свое внимание на Java, в том числе на компиляторах. Думаю, вы увидите много новинок в этом направлении в будущем. Но не забывайте, что мы уделяем не меньше внимания и платформе .NET.

PC Week: Спасибо за беседу.