Город Саров (ударение ставится на последний слог) находится в 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.
В лаборатории два основных направления деятельности:
- базовое (направлено на студентов):
- дополнительное профессиональное обучение;
- подготовка учебных курсов по актуальным ИТ-темам;
- практический проектный опыт ведения разработок;
- стимулирование рождения и развития научных идей.
- дополнительное:
- работа со школьниками в сфере ИКТ;
- мастер-классы для учителей информатики;
- проведение различных образовательных акций;
- мероприятия в рамках социальной ответственности;
- объединение представителей ИТ-сообщества г. Саров.
Текущие проекты лаборатории 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%-ную эффективность ядерных и водородных боеприпасов. Узнали мы и о так называемых конверсионных разработках ВНИИЭФ, например, про электронный ускоритель, уничтожающий древесных паразитов, про защитный материал для рентгеновских исследований и про систему быстрого и безопасного «вытягивания» костей у инвалидов.
На всех волнующий вопрос о термоядерном реакторе нам ответили примерно так: вот помните лет пятьдесят назад был художественный фильм про ученых в Дубне, которые в Объединенном институте ядерных исследований (ОИЯИ) как раз занимаются этой проблемой. Так вот тогда в фильме было показано, что вот-вот и «холодный» синтез получится и энергетическая проблема будет решена. Прошло пятьдесят лет ну что сказать, вот-вот задача будет решена.
Вообще всегда приятно послушать умного руководителя с богатым жизненным опытом. Кстати, именно ВНИИЭФ выиграли тендер и получили грант на создание суперкомпьютера (скорее всего это будет кластер), а еще в скором времени в институте экспериментальной физики будет запущен в эксплуатацию сверхмощный магнит. В общем, во ВНИИЭФ занимаются реальным делом, а не освоением бюджетов.
Большое спасибо Елене Уткиной за прекрасно организованную поездку в Саров.
Отдельное спасибо Михаилу Рыбакову.