Центр разработок Intel в Сарове

Город Саров (ударение ставится на последний слог) находится в 60 км южнее Арзамаса, который на 110 км южнее Нижнего Новгорода. От Москвы до Нижнего Новгорода около 400 км. На поезде с Казанского вокзала в Москве до Арзамаса ехать около семи часов. Именно там, в Сарове, находится ВНИИЭФ — институт экспериментальной физики, где разрабатывается наше ядерное оружие. Понятно, что Саров является закрытым городом, это значит, что даже граждане России должны получать специальное разрешение на въезд у соответствующих компетентных органов.

Так получилось, что в 1993 году Intel нужно было создать специальное программное обеспечение и за заказ взялись специалисты ВНИИЭФ. Успешный результат этого контракта и стал началом плодотворного сотрудничества. В Сарове есть еще и СарФТИ — физико-технологический институт, который в прошлом году получил статус университета. В результате в Intel посчитали и решили, что выгоднее сделать центр разработок рядом с самым ценным — специалистами. За специалистов приходится конкурировать с ВНИИЭФ, ну так конкуренция всегда идет на пользу всем. В 2003 году в Сарове был открыт центр разработки Intel. Но статус города создает и некоторые неудобства, поэтому когда в 2007 году недалеко от Сарова был создан технопарк Сатис, было принято решение перевести центр разработок именно туда (об этом событии мы писали в материале: Новый «рассекреченный» офис Intel в Сатисе: официальное открытие). Теперь в 7 км от Сарова на территории технопарка Сатис у Intel есть арендуемое здание, полностью оборудованное по корпоративным стандартам. Кстати, Сатис это не акроним, так называется протекающая в окрестностях река.

Лишь в конце 2009 года завершился процесс переоборудования арендуемого в технопарке здания согласно корпоративным стандартам Intel, и это стало поводом к проведению экскурсии для журналистов. Кстати, аренда этого здания самая дешевая среди всех подразделений Intel во всем мире. В здании есть своя столовая, конференц-залы и рабочие места на 189 человек. Сейчас в центре работают 100 человек. При этом общая площадь здания составляет 3410 кв. м., из которых 1100 кв. м. отведены под лаборатории и центр обработки данных. Итак, Intel пригласила группу журналистов из Москвы в свой центр разработки, чтобы на месте показать и рассказать, чем же там занимаются российские специалисты, работающие в американской корпорации. Про историю создания центра разработок в Сарове, про то, как оборудовано здание, арендуемое Intel и вообще про то, чем занимаются подразделения корпорации в России очень подробно рассказала Дарья Кирьянова. Именно Дарья возглавляет офис Intel в Сарове и она с самого начала принимала непосредственное участие в проектировании и реализации проекта переоборудования здания Intel.

Чем же занимается центр в Сарове? Это центр разработок программного обеспечения, а именно таких продуктов, как IPP, MPI, MKL и система прогнозирования поведения элементов микросхем в различных условиях. Многим читателям перечисленные аббревиатуры хорошо знакомы, тем не менее расскажем чуть подробнее о них. Тем более что по каждому направлению разработок была проведена подробная презентация.

Про IPP (Integrated Performance Primitives) рассказал Владимир Дудник, руководитель проекта Software and Service Group.

Intel IPP это:

  • 17 функциональных направлений;
  • более 10 тысяч функций;
  • 350 МБ исходного кода;
  • поддержка ОС Windows, Linux и MacOS X;
  • поддержка IA32, IA64, Atom;
  • разрабатывается полностью в России;
  • два релиза в год плюс внеочередные релизы;
  • основной пакет IPP, пакет примеров IPP.


Суть IPP в том, что разработчикам приложений предлагаются уже готовые, специально оптимизированные функции, которые просто (в буквальном смысле) интегрируются в приложение. При этом гарантируется качество кода, его оптимальность по производительности, причем поддерживаются все возможности современных процессоров, не ограничиваясь продуктами самой Intel, включая поддержку мультипроцессорных и многоядерных систем. В поставку IPP входят и примеры использования функций, а набор интерфейсов (Java, C#, C++, .VB, F90) удовлетворит все вкусы. Дополнительную информацию по IPP можно найти по адресу: intel-ipp.

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

Про продукт MKL (Math Kernel Library, библиотека математический функций), который также разрабатывается в саровском офисе Intel, рассказал руководитель группы Сергей Сивологин. По своей сути MKL это высокопроизводительная параллельная математическая библиотека для научных, инженерных и финансовых приложений. В ней реализованы различные методы из линейной алгебры для преобразований и операций над плотными и разряженных матрицами, реализованы алгоритмы быстрого преобразования Фурье, имеется поддержка работы с векторами, методы решения дифференциальных уравнений, а также реализованы различные методы оптимизации. В общем, разработчикам предлагается готовый набор функций для решения различных математических задач, в виде библиотеки, которую довольно просто подключить к имеющемуся проекту и сразу получить массу преимуществ, таких как экономия времени на разработку, удобные и привычные интерфейсы, поддержка многоядерных и много процессорных систем, а также различных архитектурных особенностей процессоров. Добавим к этому внушительному списку и поддержку параллельности, т.е. возможность работы на кластерах, и будет понятно, что данный продукт не зря пользуется популярностью у разработчиков. Пакет MKL обеспечивает быстродействие вплоть до 98% от теоретического максимума. Поэтому, вместо того чтобы самостоятельно заниматься математикой, например в физическом или финансовом моделировании, куда проще и удобнее воспользоваться готовыми решениями из MKL, а основное время посвятить оригинальным алгоритмам в вашем проекте.

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

Еще один продукт, которым занимаются в cаровском офисе, это программные инструменты для вычислений на кластерных системах — Intel Cluster Toolkit. О сути этой разработки рассказал руководитель проекта — Герман Воронов. С середины 90-х годов программисты используют параллельные вычисления на уровне процессора с поддержкой различных наборов SSE инструкций, когда однотипные операции совершаются над несколькими элементами одновременно. Тут все довольно просто и легко, т.к. давно все что нужно делает компилятор. Если в компьютере стоит многоядерный процессор или несколько процессоров с общей памятью, то для распараллеливания вычислений применяется интерфейс OpenMP. В данной ситуации программисту важно правильно расставить директивы OpenMP и дальше всю оставшуюся работу опять же возьмет на себя умный компилятор. Когда же дело доходит до распараллеливания задач на нескольких компьютерах, объединенных в кластер и имеющих общую память, то обычно применяется интерфейс MPI и задача для программиста уже является очень сложной. Вот как раз в помощь программистам для решения вычислительных задач на кластерах и предназначен пакет Intel Cluster Toolkit. В пакет входит единый инсталлятор и лицензия под Windows и Linux, библиотека Intel MPI Library, Intel Trace Analyzer and Collector, уже описанная ранее библиотека MKL, набор тестов Intel MPI Benchmarks.

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

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

Основные особенности Intel Trace Analyzer and Collector:

  • трассировка всех MPI функций по умолчанию;
  • событийно-ориентированный подход полноценно отображает процесс выполнения приложения;
  • низкое влияние на производительность приложения;
  • масштабируемость на большое количество процессов;
  • предоставляет API для работы с пользовательским кодом;
  • библиотека проверки правильности вызова MPI функций (MPI Correctness Checking);
  • отказоустойчивая трассировка;
  • мощный механизм конфигурирования коллектора (напр. фильтрация);
  • сравнение двух трасс;
  • сборка и анализ данных по аппаратным счетчикам;
  • масштабируемая агрегация данных по потокам/процессам и функциям;
  • интеграция с компилятором.

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

Набор тестов Intel MPI Benchmarks позволяет оценить производительность операций ввода-вывода в системах с поддержкой MPI.

Есть версия пакета Intel Cluster Toolkit с приставкой Compiler Edition, куда дополнительно входят все свежие версии компиляторов Intel (Fortran и C/C++) .

Основные особенности Intel MPI Library:

  • высокопроизводительная реализация MPI-2 стандарта;
  • поддержка Linux и Windows;
  • независимость от сетевого соединения (оборудования);
  • гибкий и разумный выбор подходящей сети для сообщений;
  • поддержка многоканальных соединений;
  • поддержка многопоточности;
  • гибкая поддержка закрепления процессов/потоков для смешанного распараллеливания (MPI, OpenMP);
  • бесплатное программное обеспечение для исполнения уже собранных приложений (free runtime libraries);
  • легкость и гибкость инсталляции;
  • автоматическая настройка на особенности кластера и приложения;
  • тесная интеграция с другими программами для разработки как Intel, так и других компаний (компиляторы, отладчики, планировщики);
  • лицензирование и техническая поддержка через Интернет.

Тесно сотрудничает Intel с СарФТИ, причем есть совместная программа, когда студентов приглашают на стажировку и есть совместная лаборатория BiPro (чуть ниже про неё будет написано подробнее). Кроме того, при поддержке Intel организуется летняя школа по параллельному программированию для школьников (MPI и OpenMP) и летняя студенческая школа «Inside Intel IPP». Глава офиса Intel ведет факультатив для студентов про то, как уметь слушать и как делать презентации.

На базе Факультета информационных технологий и электроники СарФТИ совместно с Intel создана Лаборатория BiPro — учебно-исследовательская лаборатория системного и прикладного программирования. Собственно название BiPro образовано из двух слов Professional Programming, где есть два (Bi) одинаковых сочетания Pro, отсюда и BiPro.

Лаборатория BiPro создана для повышения общего уровня IT-образования, проведения исследований и разработок в области прикладного и системного программирования по специфическим направлениям. Сайт лаборатории: bipro.sarfti.ru.

В лаборатории два основных направления деятельности:

  1. базовое (направлено на студентов):
    • дополнительное профессиональное обучение;
    • подготовка учебных курсов по актуальным ИТ-темам;
    • практический проектный опыт ведения разработок;
    • стимулирование рождения и развития научных идей.
  2. дополнительное:
    • работа со школьниками в сфере ИКТ;
    • мастер-классы для учителей информатики;
    • проведение различных образовательных акций;
    • мероприятия в рамках социальной ответственности;
    • объединение представителей ИТ-сообщества г. Саров.

Текущие проекты лаборатории BiPro:

  • Message Passing Interface;
  • Kinetic Monte Carlo Methods;
  • SourceAnalyzer (это полезное приложение описано выше по тексту);
  • Инициативные проекты.

Завершенные проекты лаборатории BiPro:

  • GCC@SarPhTI;
  • Speech Recognition.

Несмотря на то, что главной кузницей кадров для ВНИИЭФ, а теперь и для местного офиса Intel является СарФТИ, на работу в обе компании принимают самых лучших, т.е. существует конкурсная основа. Собственно и в сам СарФТИ в прошлом году был конкурс 12 человек на место, а всего за год выпускаются около 300 студентов.

Последним, но не по значимости интересности был доклад Бориса Воинова, возглавляющего еще одно подразделение, базирующееся в Сарове, — это Components Development Group (CDG). В подразделении работает 20 человек, оно является частью подразделения Process and Technology Modeling (PTM), в котором занято 100 сотрудников, работающих в разных офисах в США и России. В свою очередь PTM является частью подразделения Intel Design and Technology Solutions (DTS), в котором занято 900 сотрудников из офисов в США, Израиле, России и Индии. Итак, подразделение CDG в Сарове занимается вычислительными методами для моделирования процессов и технологий. Если говорить более детально, то CDG занимается такими вещами, как анализ механических напряжений, тепловым анализом, моделированием различных процессов, топографией поверхностей и т.д. По сути подразделение выясняет, например, что произойдет, с кристаллом процессора, если в него интегрировать какие-то новые элементы. Выясняется все это путем термомеханического моделирования. Для этого используется трехмерный конечно-элементный метод для анализа тепловых и механических напряжений. Для подобных моделей используется обширная библиотека моделей материалов. После построения модели проводится анализ развития дефектов, усталости и разрушения материалов.

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

Для оценки масштаба сложности решаемой математической задачи приведем некоторые цифры. Объем требуемой памяти на каждый вычислительный кластер определяется по формуле: 0,025+1,9/Nпр ГБ/млн. степеней свободы.

При 500 млн. степеней свободы для 256 узлов потребуется по 16 ГБ памяти на каждый кластер. При этом по статистике лишь 0,75% времени уходит на построение уравнений, а все остальное время уходит на их решение.

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

Несмотря на то, что в сам город Саров нас не пустили, нам удалось встретится с Владимиром Рогачевым, директором по международному научно-техническому сотрудничеству ВНИИЭФ.

Встреча получилась очень интересной и познавательной. Понятно, что никакой секретной информации нам никто не рассказал. Тем не менее, вопросов было задано много и ответы были очень познавательные. Мы узнали, что с помощью большого адронного коллайдера нельзя создать черную дыру, что общение ученых из разных стран по незасекреченным темам очень плодотворно: ведь кто-то силен в одной области, кто-то в другой, и научный обмен информацией полезен тем, что позволяет, например, не тратить силы на тупиковые ветки в исследованиях. Нам рассказали, как создавалось ядерное оружие и как в современных условиях можно обходиться без реальных испытаний, обеспечивая при этом 100%-ную эффективность ядерных и водородных боеприпасов. Узнали мы и о так называемых конверсионных разработках ВНИИЭФ, например, про электронный ускоритель, уничтожающий древесных паразитов, про защитный материал для рентгеновских исследований и про систему быстрого и безопасного «вытягивания» костей у инвалидов.

На всех волнующий вопрос о термоядерном реакторе нам ответили примерно так: вот помните лет пятьдесят назад был художественный фильм про ученых в Дубне, которые в Объединенном институте ядерных исследований (ОИЯИ) как раз занимаются этой проблемой. Так вот тогда в фильме было показано, что вот-вот и «холодный» синтез получится и энергетическая проблема будет решена. Прошло пятьдесят лет — ну что сказать, вот-вот задача будет решена.

Вообще всегда приятно послушать умного руководителя с богатым жизненным опытом. Кстати, именно ВНИИЭФ выиграли тендер и получили грант на создание суперкомпьютера (скорее всего это будет кластер), а еще в скором времени в институте экспериментальной физики будет запущен в эксплуатацию сверхмощный магнит. В общем, во ВНИИЭФ занимаются реальным делом, а не освоением бюджетов.

Большое спасибо Елене Уткиной за прекрасно организованную поездку в Саров.

Отдельное спасибо Михаилу Рыбакову.




25 марта 2010 Г.

Intel

Intel

( ) 60 , 110 . 400 . . , , — , . , , , .

, 1993 Intel . . — - , . Intel , — . , . 2003 Intel. , 2007 , ( : «» Intel : ). 7 Intel , . , , .

2009 Intel, . , Intel . , - 189 . 100 . 3410 . ., 1100 . . . , Intel , , , . , , , Intel , . Intel Intel.

? , , IPP, MPI, MKL . , . .

IPP (Integrated Performance Primitives) , Software and Service Group.

Intel IPP :

  • 17 ;
  • 10 ;
  • 350 ;
  • Windows, Linux MacOS X;
  • IA32, IA64, Atom;
  • ;
  • ;
  • IPP, IPP.


IPP , , , ( ) . , , , Intel, . IPP , (Java, C#, C++, .VB, F90) . IPP : intel-ipp.

, -, Intel , SourceAnalyzer, IPP, .. - , , , . .

MKL (Math Kernel Library, ), Intel, . MKL , . , , , , . , , , , , , , . , .. , , . MKL 98% . , , , MKL, .

, MKL , , , .

, c , — Intel Cluster Toolkit. — . 90- SSE , . , .. . , OpenMP. OpenMP . , , MPI . Intel Cluster Toolkit. Windows Linux, Intel MPI Library, Intel Trace Analyzer and Collector, MKL, Intel MPI Benchmarks.

Intel MPI Library MPI-2, , .. , . MPI. .

Intel Trace Analyzer and Collector - , , . :

Intel Trace Analyzer and Collector:

  • MPI ;
  • - ;
  • ;
  • ;
  • API ;
  • MPI (MPI Correctness Checking);
  • ;
  • (. );
  • ;
  • ;
  • / ;
  • .

, . , , , . , , .

Intel MPI Benchmarks - MPI.

Intel Cluster Toolkit Compiler Edition, Intel (Fortran C/C++) .

Intel MPI Library:

  • MPI-2 ;
  • Linux Windows;
  • ();
  • ;
  • ;
  • ;
  • / (MPI, OpenMP);
  • (free runtime libraries);
  • ;
  • ;
  • Intel, (, , );
  • .

Intel , , BiPro ( ). , Intel (MPI OpenMP) «Inside Intel IPP». Intel , .

Intel BiPro — - . BiPro Professional Programming, (Bi) Pro, BiPro.

BiPro IT-, . : bipro.sarfti.ru.

:

  1. ( ):
    • ;
    • -;
    • ;
    • .
  2. :
    • ;
    • - ;
    • ;
    • ;
    • - . .

BiPro:

  • Message Passing Interface;
  • Kinetic Monte Carlo Methods;
  • SourceAnalyzer ( );
  • .

BiPro:

  • GCC@SarPhTI;
  • Speech Recognition.

, , Intel , , .. . 12 , 300 .

, , , , — Components Development Group (CDG). 20 , Process and Technology Modeling (PTM), 100 , . PTM Intel Design and Technology Solutions (DTS), 900 , , . , CDG . , CDG , , , , .. , , , , - . . - . . , .

- 1024 . , , 1000 . :

. : 0,025+1,9/N /. .

500 . 256 16 . 0,75% , .

, CDG , .. , , , . , . , .

, , , - .

. , . , . , , : - , - , , , , . , , 100%- . , , , , «» .

: , () . , - «» . — , - .

. , ( ), . , , .

.

.