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

468*60

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

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

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

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

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


Особый файл

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

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

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

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

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


Самобытный файл

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

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

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

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


Своеобразный файл

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

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

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

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

При этом, 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

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


Своеобычный файл

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

Интерфейс всех функций - 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

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


Неповторимый файл

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

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

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

Process Technology Modelling

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


Оригинальный файл

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

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

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

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

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

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

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

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

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

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

468*60
Комментариев: [0] / Оставить комментарий

Keywords:

intel, intel сарове, intel cluster, сотрудники intel, центр intel, intel software, приложений intel, intel math, intel mpi, файл intel