Все производители компьютеров и собственно процессоров традиционно хотели сделать их побыстрее, а создатели средств разработки программ хотели, чтобы порождаемые ими приложения работали побыстрее. Сегодня, когда процессоры Intel Xeon применяются в подавляющем большинстве суперкомпьютеров мира, корпорация обращает особое внимание на инструментарий программирования систем высокопроизводительных вычислений (High Performance Computing, HPC).
О своих программных технологиях HPC представители Intel рассказывают в рамках серии семинаров по всему миру. Несколько таких семинаров проведено и в нашей стране; один из них прошел в конце ноября в Москве. Intel сегодня связана с HPC по всем направлениям — корпорация теперь производит все основные аппаратные компоненты для узлов вычислительных систем и их межсоединения, а также необходимые средства разработки программ.
Основная часть семинара была посвящена новейшим интегрированным программным средствам Intel Parallel Studio XE 2016, ориентированным на HPC-приложения. Для проведения таких семинаров в России имеются весьма серьезные причины: отечественные программисты выполняют очень большую часть работ по созданию основных компонентов Parallel Studio — библиотек времени выполнения MKL (здесь русскими вообще проводится 90% всех работ), оптимизирующих компиляторов и средств распараллеливания Intel MPI.
Parallel Studio XE 2016 включает в себя компиляторы Си/С++ и Фортрана (вплоть до Фортрана 2008 включительно) версии 16.0. Компиляторы поддерживают последнюю версию стандарта распараллеливания для систем с общей памятью OpenMP 4.1 (для С/С++ поддерживается также применяемый в акселераторах OpenCL). Сluster OpenMP в Intel более не предлагают, поскольку можно применять UPC и Сoarray Fortran. Что касается системы Intel MPI, то она допускает распараллеливание поверх всех актуальных кластерных межсоединений, включая Ethernet и выше c уменьшенными задержками по RoCE и iWARP, а также технологию Infiniband (у Intel есть ее собственные QDR-реализации с пропускной способностью 40 и 80 Гбит/с соответственно при использовании одного или двух каналов). А от этого Infiniband-варианта в Intel перешли уже к более быстрому OmniPath с пропускной способностью 100 Гбит/с.
В Parallel Studio входит и библиотека MKL 11.3, основанная на средствах базовой линейной алгебры ScaLAPACK. В действительности MKL объединяет несколько оптимизированных библиотек, дающих высокую производительность в случае их применения с процессорами Xeon и акселераторами Xeon Phi. Учитывая достижение там максимальной производительности при применении векторных команд AVX (с длиной векторов до 512 бит в новейших ядрах Xeon Phi Knights Landing; в Xeon Haswell пока 256 бит — 512 бит ожидается в следующем году), углубленная векторизация применяется и в модулях из MKL, и в компиляторах. Большие расширения выполнены в составе MKL для обеспечения работ с разреженными матрицами. Стало доступным так называемое «пакетное» умножение матриц, когда ряд маленьких матриц объединяются в большие, а их умножение эффективно распараллеливается.
Определенный уровень совместимости на уровне команд, особенно векторных, между ядрами Xeon и Xeon Phi, по возможности отражается и в программном обеспечении Parallel Studio. Возможен некоторый перенос программного обеспечения с ядер Xeon на Xeon Phi. Например, если основное время выполнения программы уходит на вызовы MKL, то достаточно просто переключиться на соответствующие библиотеки из MKL для Xeon Phi. Cтандарт OpenMP сейчас вообще предполагает возможность перехода на акселераторы.
Надо заметить, что Intel предлагает говорить теперь о двух классах HPC. Первый класс — традиционный. Там речь идет о расчетах для самых различных приложений с использованием средств традиционной прикладной математики, которые требуют задействования больших процессорных ресурсов. В предельном случае для этих приложений необходимы суперкомпьютеры. При использовании кластеров здесь требуется распараллеливание с применением высокоскоростных межсоединений с низкими величинами задержек при передаче коротких сообщений.
Но теперь сформировались новые области приложений, в основном коммерческих, для проведения анализа, для которых характерна обработка очень больших объемов данных. Такие приложения при распараллеливании в кластерах не нуждаются в продвинутых межсоединениях с маленькими задержками, а подчас вообще можно прибегать к облачным вычислениям. Поэтому и в состав MKL фирма включила новую библиотеку DAAL (Data Analytics Acceleration Library). В обычном понимании этот класс приложений вообще представляется не относящимся к HPC. Но, судя по активности задаваемых на семинаре вопросов, среди участвовавших в нем российских специалистов большинство, вероятно, занимаются именно такими задачами. Однако все рассказанные на семинаре истории успеха применения программных продуктов относились к обычным HPC-приложениям.