Мы продолжаем серию публикаций российских подразделениях Intel, которых в общей сложности насчитывается уже пять штук. О том, чем занимаются в филиалах в
Нижнем Новгороде и
Новосибирске мы уже рассказывали. В этот раз речь пойдет о филиале Intel в городе Саров.
Стоит сказать, что Саров (в советское время он назывался Арзамас-16), после размещения в городе секретного объекта «КБ-11» в 1946 году, получил статус закрытого административно-территориального образования и сохраняет его до сих пор. Дело в том, что это самое «КБ-11» занималось ни чем иным, как созданием первой советской атомной бомбы.
Впоследствии «КБ-11» было преобразовано в
РФЯЦ-ВНИИЭФ — Российский федеральный ядерный центр, Всероссийский научно-исследовательский институт экспериментальной физики. В настоящее время РФЯЦ-ВНИИЭФ включает в себя несколько институтов и конструкторские бюро. Кстати, первая водородная бомба также разрабатывалась здесь. Основной задачей РФЯЦ-ВНИИЭФ было и остается обеспечение надежности и безопасности ядерного оружия России. Помимо этого, здесь ведутся работы и над "мирным атомом", а также различные проекты, что называется, народно-хозяйственного назначения.
Казалось бы, как в таком закрытом городе, как Саров, американская компания Intel смогла обустроить один из своих филиалов? Смеем вас заверить, что национальным секретам России ничего не угрожает. Несмотря на перестройку, демократию и падение "железного занавеса", пропускной режим в Сарове по-прежнему строг и суров. К сожалению, нас, журналистов, в Саров в этот раз так и не пустили, но в саровском филиале Intel мы все же побывали. Объяснение этому простое - саровское отделение Intel находится в технопарке Сатис, который находится неподалеку, причем настолько близко, что, по словам сотрудников Intel, в хорошую погоду они ходят на работу пешком.
Почему именно Саров? Ответ очевиден - Intel привлекает научно-технический потенциал в фундаментальных и прикладных исследованиях, созданный за годы работы ядерного центра и до сих пор неустанно развиваемый. Заметьте, речь не идет о банальном "вывозе мозгов", и даже не о переманивании, а о тесном взаимном сотрудничестве, которые оказывается выгодным всем участвующим сторонам. Впрочем, предоставим слово сотрудникам Intel - они подробнее расскажут о тех проектах, которыми они занимаются в настоящее время.
⇡#Intel в Сарове
Как уже говорилось, территориально саровское отделение Intel находится за пределами города, в технопарке Сатис. И, надо признать, Intel устроилась здесь с большим комфортом - целиком занимает отдельное здание. Плюсы этого очевидны - посторонних в офисе не бывает, только сотрудники и гости компании. Режим работы можно установить какой угодно, и здесь он круглосуточный. Так что если кого-то посреди ночи осенила идея, можно не ждать до утра, а прийти на рабочее место и тут же воплотить ее в жизнь. Как оказалось, такое происходит довольно часто.
Обо всем этом и многом другом нам рассказала Дарья Кирьянова, управляющая филиалом Intel в саровском технопарке.
Офис Intel в городе Саров был открыт в 2003 году, а в 2007-м переехал в собственное здание в технопарке Сатис. Общая площадь здания составляет 3410 кв. м, из которых 1100 кв. м отведено под лаборатории и центр обработки данных. В настоящий момент в саровском филиале Intel работает около 100 сотрудников, а в общей сложности здесь оборудовано 186 рабочих мест.
Основные подразделения - "Группа программных продуктов и сервисов", а также "Группа производственных технологий". Разумеется, для обеспечения нормального функционирования офиса имеется и собственное IT-подразделение, call-центр, административно-хозяйственный отдел и т.д.
Исторически сложилось, что в каждом филиале Intel есть два главных руководителя - управляющий филиалом и технический лидер. Первый обычно занимается по большей части решением административных вопросов, в то время как второй является, фактически, замом по науке и отвечает за решение "производственных" задач.
Дмитрий Кожаев, технический лидер cаровского филиала Intel, в общих чертах рассказал об основных направлениях деятельности данного подразделения. В первую очередь, это разработка программных средств для повышения производительности вычислительных систем и распараллеливания задач, которые включают в себя:
- библиотеку высокопроизводительных вычислений (Intel IPP)
- математические библиотеки (Intel MKL)
- библиотеку распараллеливания (Intel MPI)
- инструменты для распараллеливания приложений, коллектор и анализатор трасс (Intel Trace Analyzer and Collector)
- набор инструментов для работы с видео- и аудио- аппаратными ускорителями (Intel MediaSDK)
Отметим, что возможностями этих программных продуктов Intel может воспользоваться любой разработчик высокопроизводительных вычислительных систем. Основная цель создания библиотек - максимально эффективное использование возможностей современных процессоров и облегчение разработки сложнейших систем параллельной обработки данных. Благодаря этим библиотекам разработчики получают возможность сконцентрироваться на сути решаемой суперкомпьютером проблемы, в то время как все низкоуровневые задачи выполняются максимально быстро и эффективно.
У вас наверняка мелькнула мысль, что это ПО в первую очередь оптимизировано под процессоры Intel. Разумеется, это так. Но, как оказалось, жесткой "привязки" к процессорам именно Intel - нет. Если процессор какого-либо другого производителя поддерживает необходимый набор команд, то эти библиотеки и на нем будут выполняться максимально эффективно. То есть, привязка идет не к конкретной "железке", а к архитектуре и набору команд процессора.
Другим интереснейшим направлением деятельности саровских разработчиков Intel является разработка программ для моделирования технологий производства полупроводниковых приборов. Во многом благодаря этой группе закон Мура до сих пор действует, и от них зависит, какие материалы и тех.процессы Intel будет использовать в своих процессорах в ближайшем и далеком будущем. Это программное обеспечение не предназначено для широкого использования, что, в общем-то, понятно, поэтому другим разработчикам полупроводниковых приборов придется искать собственные пути решения этих непростых задач.
Помимо всего вышеперечисленного, саровская команда Intel занимается инженерной поддержкой конкурентных сделок и даже поддержкой пользователей. Затем Дмитрий Кожаев передал слово своим коллегам, которые рассказали о своих проектах более подробно.
⇡#Intel Cluster Toolkit
Первым выступил Герман Воронов, руководитель проекта Intel Cluster Toolkit.
Intel Cluster Toolkit это программный пакет с единой лицензией и единым инсталлятором, который способен работать на операционных системах как Linux, так и Microsoft Windows.
В Intel Cluster Toolkit входят:
- Intel MPI Library - высокопроизводительная и универсальная реализация стандарта MPI-2, позволяющая приложениям работать на произвольном сетевом оборудовании
- Intel Trace Analyzer and Collector - событийно-ориентированный анализатор с низким влиянием на производительность, обеспечивающий графическое отображение процесса выполнения параллельного приложения
- Intel Math Kernel Library - высоко-оптимизированная и распараллеленная библиотека математических функций для инженерных и научных приложений
- Intel MPI Benchmarks - специальные тесты на производительность для MPI операций
Также существует расширенный пакет - Intel Cluster Toolkit Compiler Edition, который помимо вышеперечисленных библиотек включает в себя последние версии компиляторов Intel для языков Fortran и C/C++.
Здесь необходимо пояснить, что аббревиатура MPI означает Message Passing Interface, то есть программный интерфейс передачи сообщений, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Давайте посмотрим, как это работает.

Допустим, имеется некий кластер, в котором для связи между узлами используются коммутаторы, поставленные независимыми разработчиками аппаратного (IHV) обеспечения, и на нем выполняются приложения, созданные независимыми поставщиками программного обеспечения (ISV). Как правило, коммутаторы используют собственные драйверы, а приложения поддерживают какой-либо определенный вид коммутации. В этом случае библиотека Intel MPI выступает в роли абстрактного коммутатора и обеспечивает передачу сообщений между процессами той или иной задачи.
Основные особенности Intel MPI:
- Стабильность и отказоустойчивость
- высокопроизводительная реализация MPI-2 стандарта
- поддержка многоканальных соединений
- Универсальность
- поддержка Linux и Windows
- независимость от сетевого соединения (тип коммутации)
- гибкий и разумный выбор подходящей сети для сообщений
- Производительность
- поддержка многопоточности
- смешанное распараллеливание (MPI, OpenMP)
- автоматическая настройка на особенности кластера и приложения
- Поддержка
- бесплатное программное обеспечение для исполнения уже собранных приложений
- легкость и гибкость инсталляции
- тесная интеграция с другими программами для разработки как Intel, так и других компаний (компиляторы, отладчики, планировщики)
- лицензирование и техническая поддержка через Интернет
Разумеется, Intel MPI - не единственная существующая в природе реализация стандарта MPI. Ниже приведены диаграммы сравнительной производительности как бесплатных, так и коммерческих реализаций стандарта MPI.
Как видите, усилия разработчиков Intel приносят ощутимые плоды и использование Intel MPI может привести к многократному увеличению производительности распределенных вычислительных систем.
Конечно, впереди предстоит еще много работы по оптимизации управления процессами и передачи сообщений, повышения эффективности использовании памяти и отказоустойчивости. Ну а среди уже имеющихся достижений можно отметить тот факт, что библиотека Intel MPI занимает первое место в мире среди коммерческих реализаций стандарта MPI, и при этом постоянно расширяет свое присутствие в рейтинге наиболее высокопроизводительных систем
Top500.
⇡#Intel Trace Analyzer and Collector
С библиотекой Intel MPI тесно связан еще один программный инструмент, который предназначен для сбора и анализа информации о событиях во время выполнения приложения - Intel Trace Analyzer and Collector. Инструмент достаточно универсальный, работает в Linux- и в Windows-системах, также имеется API для реализации пользовательских функций.
Основные возможности Intel Trace Analyzer and Collector:
- трассировка всех MPI функций по умолчанию
- библиотека проверки правильности вызова MPI функций (MPI Correctness Checking)
- сравнение двух трасс
- сборка и анализ данных по аппаратным счетчикам
- интеграция с компилятором
- мощный механизм конфигурирования коллектора (например фильтрация)
- масштабируемая агрегация данных по потокам/процессами функциям
Событийно-ориентированный подход полноценно отображает процесс выполнения приложения. При этом обеспечивается низкое влияние на производительность приложения, масштабируемость на большое количество процессов и отказоустойчивость трассировки.
Благодаря Intel Trace Analyzer and Collector разработчик может увидеть процесс выполнения распределенного приложения, определить "узкие места" и получить детальную информацию о каждом событии.
В перспективе планируется создание эмулятора идеальной среды исполнения MPI-приложения на основе реальной трассы (Ideal Interconnect Simulator), внедрение системы плагинов для предоставления пользователю возможности создания собственных библиотек обработки трасс (Intel Custom Plug-in Framework), а также построение диаграммы дисбаланса приложения (Application imbalance diagram).
⇡#Проект Intel MKL
Следующее направление представил Сергей Сиволгин, руководитель проекта Intel Math Kernel Library (MKL).
О том, что такое математическая библиотека Intel и зачем она нужна, мы уже рассказывали в репортаже о
Новосибирском центре Intel. Intel MKL - высокопроизводительная параллельная математическая библиотека для научных, инженерных и финансовых приложений.
Функциональность Intel MKL:
- линейная алгебра: плотные матрицы (BLAS, LAPACK, ScaLAPACK)
- линейная алгебра: разреженные матрицы (прямые/итеративные решатели, Sparse BLAS)
- быстрое Преобразование Фурье (SMP иMPI)
- векторная математическая библиотека (VML)
- векторная статистическая библиотека (VSL)
- функции расширенной точности (GMP)
- дифференциальные уравнения (уравнение Пуассона,тригонометрические преобразования)
- методы оптимизации (TRS)
Те, кто читал репортажи о филиалах Intel в Новосибирске и Нижнем Новгороде, могли заметить, что и в этих филиалах Intel занимаются разработкой математической библиотеки. Дело в том, что спектр поддерживаемых Intel MKL функций весьма широк, и каждая группа разработчиков занимается определенным направлением. Так, в Новосибирском центре Intel занимаются в основном разреженными матрицами, а в Нижнем Новгороде - векторными математическими и статистическими библиотеками. В Сарове работают над плотными матрицами, и здесь же осуществляется финальная интеграция и сборка Intel MKL.
Стоит ли говорить, что математическая библиотека Intel прекрасно оптимизирована под процессоры Intel. Но, как уже отмечалось выше, это нисколько не помешает использовать ее и с другими Intel-совместимыми процессорами, поскольку для эффективной работы Intel MKL важно наличие тех или иных команд, поддерживаемых процессором, а не его конкретный изготовитель.
Отметим, что Intel MKL использует параллельные вычисление везде, где это возможно, и прекрасно подходит для работы на как на многоядерных процессорах, так и на распределенных кластерах. Функционал библиотеки непрерывно растет и расширяется, причем многие функции появляются в ней благодаря запросам пользователей, с которыми установилось тесное общение.

Сфера применения Intel MKL весьма широка. Библиотека используется научно-исследовательскими и коммерческими организациями, например, автопроизводителями, нефтедобывающими компаниями, банками и другими финансовые организациями, и даже анимационными студиями, не говоря уже о разработчиках инженерного ПО.
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.