Наука и технологии

Исследовательский центр Intel в Сарове. Создавая инновации для всего мира

Как известно, инноваций не бывает без исследований и кропотливой работы. Обычно весь этот труд спрятан от нас — мы пользуемся лишь результатом: быстрыми процессорами, оптимизированными программами. Недавно нам выпал шанс слегка приподнять завесу тайны над процессами, происходящими внутри современной техники — во время пресс-тура в исследовательское подразделение Intel, расположенное близ закрытого «ядерного» города Сарова.

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

Исследовательская деятельность Intel в России не слишком открыта для сторонних глаз. Многие до сих пор воспринимают Intel прежде всего как «компанию, торгующую процессорами» — однако, это не так. Отделы НИОКР корпорации присутствуют в Москве, Сарове, Нижнем Новгороде, и Новосибирске. Общее количество российских исследователей Intel — более 700, и результатами их трудов пользуются не только у нас, но и по всему миру — при создании процессоров, платформ, налаживании производств. Созданное ПО «крутится» на кластерах в США и Израиле, а высокопроизводительные библиотеки и эффективные инструментарии оптимизации, к разработке которых приложили руку российские программисты и исследователи, используются по всему миру.

О транзисторах, процессорах и диффузии

Центр исследований и разработки в Сарове был открыт еще в далеком 2003 году, и тогда он располагался в самом сердце этого закрытого города. Причина, по которой было выбрано столь странное место, проста — уровень образования в наукограде и в те времена находился на чрезвычайно высоком уровне. А с приходом компании, которая начала стимулировать выпуск новых программистов и исследователей (как материально, набирая квалифицированные кадры на высокооплачиваемую работу, так и с помощью социальных и образовательных программ), он стал и вовсе одним из самых высоких в России.

Однако, для иностранной компании оказалось не слишком удобно функционировать в охраняемой территории — каждый визит иностранных специалистов сопровождался ожидаемыми сложностями — и в 2007 году центр (или, как говорят сотрудники Intel, «сайт») переехал в технопарк в поселке Сатис, расположенном в 8 километрах от Сарова.

p_intel_zdanie

Сейчас у компании отдельное трехэтажное здание площадью 3410 кв.м, из которых 1100 кв.м — лаборатории и центры обработки данных, а остальное — офисное пространство и хозяйственные помещения. В здании 186 рабочих мест, из них сейчаc занято около 100.

Программные инструменты

Чем же занимаются сотрудники Intel в Сарове? Нам рассказали о нескольких программных продуктах, на которых сейчас сосредоточено основное внимание российских разработчиков. Большинство из них работает в подразделении Software and Services Group, и создают инструментарий, призванный тем или иным способом оптимизировать код. Ведь для того, чтобы программы «не тормозили», недостаточно сделать «скорострельный» процессор — стоит озаботиться и работой программистов, рассказать им о технологиях создания быстро выполняющегося кода и снабдить инструментами, позволяющими оценить и повысить эффективность вычислений.

Программные инструменты для вычисления на кластерных системах Intel Cluster Toolkit

Об этом комплексе нам рассказал руководитель проекта, Герман Воронов.

p_german_voronov

Эра паралеллизма активно началась для программистов в середине девяностых. Именно тогда стала актуальна векторизация на уровне процессора, когда однотипная операция выполнялась несколькими элементами одновременно, а программист даже не задумывался о процессе. С появлением систем с несколькими процессорами актуально стало и распараллеливание вычислений на общей памяти, и здесь программисту тоже не приходилось особенно много думать, главное — выставить директивы компилятора.

Однако, самой сложной, и всегда актуальной задачей, было распараллеливание на разделенной памяти, или кластерные вычисления. Для нее характерно было очень сложное программирование и отладка — ведь для эффективной работы нужно было рассчитать, каким образом лучше всего «раскидать» задачу по разным вычислительным центрам, соединенным относительно медленными (по сравнению с шиной памяти) каналами.

Именно для облегчения этой нетривиальной задачи и был создан Intel Cluster Toolkit, который включает в себя такие компоненты, как:

Intel Trace Analyzer and Collector — инструмент для сбора трассы, то есть, пути выполнения приложения, позволяющий, например, найти места «зависания» (когда для выполнения одной комманды нужны результаты другой, а она выполняется в другом сегменте кластера и неожиданно долго).

p_trace_analizer

Intel MPI Library — реализация стандарта MPI-2, позволяющая приложениям работать на произвольном сетевом оборудовании.

Intel Math Kernel Library — распараллеленная библиотека математических функций для инженерных и научных приложений.

Intel MPI Benchmark — набор тестов производительности для операций, ведь в зависимости от оборудования скорость выполнения тех или иных команд может быть разной.

Существует также программный пакет ICT Compiler Edition, включающий в себя все вышеперечисленные продукты и оптимизированные компиляторы Intel для Fortran и C/C++.

mashtabee

При этом, Intel MPI Library поддерживает многоканальные соединения, многопоточность, независима от сетевого оборудования, и, что, пожалуй, самое главное, автоматически подстраивается под особенности кластера. Программный пакет предназначен для малых и средних кластеров (до десятков тысяч процессов), но следующая версия сможет работать и на уровне национальных лабораторий (до сотен тысяч процессов).

Домашняя страница Intel Cluster Toolkit:
http://software.intel.com/en-us/intel-cluster-toolkit-compiler/
http://software.intel.com/en-us/intel-mpi-library/

Дополнительная информация:
http://software.intel.com/en-us/articles/intel-cluster-tools-white-papers
http://www.intel.com/go/cluster

Форум для разработчиков:
http://software.intel.com/en-us/forums/intel-clusters-and-hpc-technology

Другие полезные ссылки:
http://www.intel.com/go/clustertools
http://www.intel.com/go/traceanalyzer
http://www.intel.com/go/mpi
http://www.intel.com/go/cluster

Intel Integrated Performance Primitives

Об этом пакете нам рассказал руководитель проекта, Владимир Дудник.

p_vladimir_dudnik

Intel делает великое множество средств разработки, но IPP находится на особом положении. Фактически, это набор высокопроизводительных оптимизированных функций, который используют самые разнообразные разработчики для создания своих приложений. Общее количество вызываемых элементов составляет 11962, причем расположены они в самых разных областях, начиная от базовой функциональности, обработки сигналов и изображений, и заканчивая примитивами для обработки строк, распознавания речи, кодирования музыки и векторных операций. Этот полностью разрабатываемый в России проект — фактически строительный материал для широкого круга приложений, в котором важна производительность.

ipp

Интерфейс всех функций — ANSI C, что позволяет легко использовать их в разных языках программирования, таких как Java, C#, Visual Basic, C++. При этом, более 50 сэмплов IPP свободно доступны в исходном коде для скачивания со страниц Intel Software. В этот набор входят функции для трассировки лучей, «компьютерного зрения», кодирования видео, музыки и изображений, и т.п. Оптимизация IPP проведена по всем направлениям, начиная от алгоритмов, код может использоваться на любых платформах (хотя, конечно, быстрее всего — на процессорах Intel).

Кстати, не стоит считать IPP такой уж нераспространенной библиотекой — она используется во многих приложениях, например, в проектах GZIP, OpenSSL, LIBJPEG, и других, а группа исследователей стенфордского университета выиграла DARPA «Urban Challenge» (соревнование роботов в псевдогородских условиях) на машине, оснащенной Intel Core 2 Quad и системой компьютерного зрения на базе OpenCV и IPP. Суммарное же количество пользователей IPP по всему миру — более 35 000, причем в числе заказчиков такие конторы, как Microsoft, Apple, Adobe, SGI, Yahoo, Pixar, Symantec и другие.

Страница продукта Intel IPP:
http://software.intel.com/en-us/intel-ipp/

Примеры медиа кодеков и приложений на основе IPP:
http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-samples-license-agreement/

Intel Software Network Форум для разработчиков:
http://software.intel.com/en-us/forums/intel-integrated-performance-primitives/

Книга «Оптимизация приложений с Intel IPP»:
http://shop.intel.com/shop/product.aspx?pid=SIBK3608

Библиотека математических функций Intel Math Kernel Library

О ней нам поведал Сергей Сиволгин, руководитель группы.

p_sivolgin

Math Kernel Library — это, как можно догадаться из названия, библиотека математических функций. Она также чрезвычайно высоко производительна и использует все преимущества параллельных вычислений. Предназначена Math Kernel Library прежде всего для научных, инженерных и финансовых приложений. В состав библиотеки входят, например, функции линейной алгебры, быстрое преобразование Фурье, средства для работы с дифференциальными уравнениями, и т.п. Библиотека оптимизирована для всех современных процессоров Intel, начиная от Itanium и Xeon, и заканчивая Core 2 Duo и Core i7. Впрочем, работа на процессорах других производителей тоже возможна — и сравнима с лучшими библиотеками. Еще одно преимущество IMKL — в универсальности, она может работать как на уровне инструкций (SIMD), многоядерных процессоров (Open MP), так и на кластерах с распределенной памятью (MPI). Быстродействие библиотеки очень велико — до 98% от теоретического максимума.

mkl

Intel MKL применяется в физическом моделировании, при прогнозировании погоды, для финансовых расчетов, обработки изображений и сигналов, для задач биоинформатики — иными словами, это основа ресурсоемких научных приложений. Среди пользователей IMKL автопроизводители, нефтедобывающие компании, авиакосмические агентства, банки, финансовые организации, анимационные студии, исследовательские подразделения крупных корпораций, научные институты.

Команда, разрабатывающая MKL, распределена по всей России — в Сарове, Нижнем Новгороде, Новосибирске, а часть ее находится в Хиллсборо (США, штат Орегон). История библиотеки насчитывает уже 6 лет.

Process Technology Modelling

А этот представленный нам продукт коренным образом отличался от того, что мы видели ранше, так как он предназначался прежде всего для внутреннего использования специалистами компании. Борис Воинов рассказал нам о вычислительных методах для моделирования процессов и технологий, то есть о ПО, которое используется разработчиками при создании новых процессоров.

p_voinov

До того, как процессор будет осуществлен «в железе» (даже в опытных образцах), он неоднократно пробуется на самых различных математических моделях. Анализируются все аспекты — топография поверхности, возможность интегрирования компонентов, тепловые характеристики, механические напряжения, и даже литографические нюансы. Еще бы, ведь изготовление первого опытного образца процессора — очень дорогое занятие, и перед тем, как его делать, нужно все проверить.

termomechanic

Анализ выполняется чрезвычайно детально. Так, при термо-механическом моделировании показывается до 100 миллионов (!) степеней свободы, анализируется возможное появление дефектов, усталости и разрушения материалов, вычисления производятся на кластере машин (модель разбита на 1024 домена).

thermo7

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

litograf

ПО также позволяет оптимизировать литографический процесс — точно учитывает волновые эффекты, моделирует источники света и фотохимию. С каждой версией программы появляется возможность «просчитать» более сложные физические процессы, на большом количестве кластеров. Инженеры Intel прогнозируют развитие программного комплекса, вплоть до манипулирования на атомарном уровне.

Социальная сторона

Я думаю, что если бы мы попросили, сотрудники Intel могли бы рассказывать нам о своих разработках годами, но и однодневной программы более чем хватило, чтобы в полной мере осознать масштабы исследований и разработок, проводимых российскими учеными и программистами совместно с зарубежными коллегами.

Конечно, успех подобных высокотехнологических инициатив зиждется прежде всего на кадрах — и их развитие компания Intel старается по возможности стимулировать. Нам удалось повстречаться с представителями школьной и институтсткой системы образования. И то, что нам рассказали, показалось мне действительно невероятным. О таком высоком уровне проникновения IT в образовательные учреждения многие российские города могут только мечтать

Один компьютер на 8 учеников в учебных помещениях, домашний компьютер есть у 70 с лишним процентов учителей и 80 с лишним процентов учеников — действительно впечатляющие показатели. Стоит добавить сюда всевозможные инициативы вроде летних школ программирования — «кружков», в которых специалисты Intel преподают основы параллельного программирования ученикам средней школы, а также олимпиады, проекты, которые делаются студентами для компании — все это можно перечислять бесконечно.

Как бы то ни было, поездка получилась очень оптимистичной. Мы осознаем, что наверняка есть множество подводных камней, острых углов, о которых нам не рассказали сотрудники корпорации и представители городской администрации. Но, как бы то ни было, технопарк Сатис, расположенный близ Сарова — то место, в котором российские программисты и исследователи действительно производят интересный и чрезвычайно высокотехнологичный продукт, необходимый всему миру. А это дорогого стоит.

Обсудить статью на форуме

Тег: