Intel MIC: новая архитектура для высокопроизводительных процессоров
Архитектура Intel Many Integrated Core (Intel MIC) — новый продукт линейки Intel для высокопроизводительных вычислений, включая процессоры Intel Xeon
Архитектура Intel Many Integrated Core (Intel MIC) — новый продукт линейки Intel для высокопроизводительных вычислений, включая процессоры Intel Xeon
Intel MIC позволяет удовлетворить потребности разработчиков в наличии платформы для запуска многопоточных приложений В отличие от многоядерных процессоров Intel Xeon, размер ядер в архитектуре Intel MIC меньше, и они являются ядрами Wide Vector Unit. Это решение для достижения более высокой суммарной производительности при запуске приложений с большим числом потоков данных. Intel MIC позволяет удовлетворить потребности разработчиков в наличии платформы для запуска многопоточных приложений (команды, данные, задачи, векторы, кластеры) без необходимости изменения фундаментальных принципов. Те же приемы, которые позволяют добиться оптимальной производительности на процессорах Intel (масштабирование приложений на ядра и потоки, упаковка данных в блоки для иерархической памяти и кэша) используются для достижения максимальной эффективности в Intel MIC. Новая архитектура избавляет компании-разработчики и ИТ-отделы от необходимости переобучения моделям программирования и переписывания кода.
В производстве первого продукта на базе архитектуры Intel MIC под кодовым названием Knights Corner планируется использовать 22-нм техпроцесс и разработанные Intel первые в мире 3D-транзисторы Tri-Gate.
Демонстрации на ISC 2011
На суперкомпьютерной конференции (International Supercomputing Conference, ISC) представлены наработки в рамках программы по переходу на архитектуру Intel MIC. Мероприятие проходит в Гамбурге, Германия, с 20 по 23 июня.
Наработки разделены на семь демонстрационных проектов.
Четыре из них разработаны учеными суперкомпьютерных центров — с помощью предложенной Intel платформы разработки программного обеспечения (Software Development Platform, SDP) под кодовым названием Knights Ferry. Остальные три проекта были созданы инженерами Intel. Платформа разработки использует сопроцессор Intel под названием Aubrey Isle, построенный на 45-нм технологии. Разработчики указанных SDP-проектов получили доступ к специальным версиям инструментов Intel для многоядерного программирования, в которых присутствовала поддержка сопроцессора Intel MIC. В их состав вошли: Intel Fortran Compiler, Intel C++ Compiler и IntelMath Kernel Library.
Вместе эти демонстрационные проекты помогают убедиться в том, что инструментарий SDP Knights Ferry действительно позволяет создавать более мощные приложения без сложного программирования, а также то, как он помогает решить одни из важнейших проблем индустрии HPC-систем.
Исследовательский центр в Юлихе: приложение SMMP для симуляции свертывания белка
Симуляция свертывания полипептидной цепи. Приложение SMMP (Simple Molecular Mechanics for Proteins) позволяет изучать процесс свертывания полипептидных цепей в клетке. В ходе демонстрации на экран выводится графическое изображение процесса, вычисляемого в фоне программным обеспечением, написанным с применением SDP Knights Ferry. Основная цель приложения — найти структуру, получение которой требовало бы наименьших энергозатрат. Оптимизация проводилась с использованием метода Монте-Карло и алгоритма имитации отжига. Используя привычные модели и инструменты программирования, такие как OpenMP, а также пакет Knights Ferry, ученые смогли создать рабочее приложение менее чем за 3 дня, далее приступив лишь к его опитимизации.
SMMP — это FORTRAN-пакет с открытым исходным кодом для молекулярных симуляций поведения молекул белка с использованием молекулярной механики. Использование Intel MIC-сопроцессора заключалось в выгрузке команд. Кроме того, приложение было настроено для получения преимуществ 512-разрядных векторных операций.
Способность сопроцессора Intel MIC симулировать фолдинг белка, используя требовательный к ресурсам подход молекулярной механики, доказывает гибкость предлагаемой модели программирования. Расчет биологического процесса может быть выполнен одним из двух подходов: с помощью молекулярной динамики (приближен к реальности и использует статистическую механику) или молекулярной механики, который использует ньютоновскую механику и требует значительно больших вычислительных ресурсов. Уравнения молекулярной динамики могут содержать недопустимые параметры, что заставляет более тщательно выбирать симуляционную систему. Молекулярная динамика используется на вычислительных системах общего назначения. Сопроцессоры Intel MIC поддерживают и тот, и другой подход. Данная демонстрация показывает возможность использования более сложной модели молекулярной механики при расчете фолдинга белка в приложении SMMP на сопроцессоре Intel MIC.
Демонстрация KISTI показывает, что на сопроцессоре MIC достаточно эффективно может использоваться второй подход.
Системная конфигурация: Платформа разработки Intel Shady Cove Software Development Platform с двумя 6-ядерными процессорами Intel Xeon X5690 (12 МБ L3, 3,46 ГГц), 24 ГБ DDR3 1333 МГц, одним Intel 5520 IOH, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (C0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,0 ГТ/с), программный стек и инструменты Alpha 5 Intel MIC.
Проект молекулярной динамики от KISTI
Данное приложение для моделирования взаимодействия молекул использует эмпирически-потенциальную молекулярную динамику, симулируя поведение наноматериалов: углеродных нанотрубок, графена, фуллерена и кремниевых поверхностей. Первоначально проект создавался для многоядерных систем на OpenMP и затем без особых временных затрат был легко переведен на сопроцессор Intel MIC — благодаря поддержке стандартных языков и моделей программирования.
Стандартизированные модели параллельного программирования, общие между процессорами Intel Xeon и Knights Ferry SDP, и простая и мощная модель разгрузочного программирования показали гораздо более высокие результаты в сравнении с платформой GPU. Симуляция является высокопараллельной с минимальной зависимостью от данных и хорошо параллелизируется с помощью стандартных многопоточных моделей программирования, таких как OpenMP и Intel Cilk Plus. Приложение демонстрирует близкие к теоретическим значениям показатели линейного роста производительности на ядрах Intel Xeon и Knights Ferry. Приложение полностью использует 512-разрядный векторный блок Knights Ferry посредством встроенных средств C.
Системная конфигурация: Рабочая станция Dell Precision с одним 4-ядерным процессором Intel Xeon X5620 (12 МБ L3, 2,4 ГГц), 24 ГБ ОЗУ DDR3 1333 МГц, одним Intel 5520 IOH, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (C0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,0 ГТ/с).
LRZ: произведение матриц TifaMMy
Демонстрирует рекурсивную схему разделения входных данных для расчетов и параллелизации, с кэш-независимой имплементацией произведения матриц.
TifaMMy — кэш-независимое решение произведения матриц, использующая кривую Пеано и предлагающая C++ API. Использует рекурсивную схему разделения входных данных для расчетов и параллелизации. В связи с использованием рекурсии данный метод, который хорошо работает на CPU, не может быть портирован на GPU. Используя похожую на CPU модель программирования на Intel MIC, ученые LRZ смогли запустить приложение на Knights Ferry за несколько часов и, проведя работу по оптимизации, зафиксировали производительность, превышающую 650 гигафлоп/с.
Программа написана на C++ с использованием OpenMP и преимуществ 512-разрядных векторов посредством встроенных средств C++.
Полученная в примере производительность в 650 гигафлоп/с близка к оптимальному значению для данного конкретного алгоритма (чуть больше половины теоретической пиковой производительности платы), хотя с дальнейшим усовершенствованием средств возможен еще некоторый прирост.
Самое важное — использование приложения на C++ и сложного адаптивного рекурсивного алгоритма показывает огромное значение в плане «портирования производительности» кода. Подобные алгоритмы не требуют ручной настройки, обусловленной изменением размера кэша и иерархии памяти, даже при перемещении на архитектуру Intel MIC. Благодаря возможности простого использования сопроцессоров Intel MIC посредством стандартных методов программирования, в дополнение к произведению матриц эти адаптивные методы могут быть использованы в других важных алгоритмах, включая PDE-солверы, а также применимы для уплотнения и разряжения матриц. Все это помогает представить громадный потенциал архитектуры Intel MIC и ее способности работать с различными существующими методами программирования, включая рекурсию.
Системная конфигурация: Платформа Intel Shady Cove Software Development Platform с двумя 6-ядерными процессорами Intel Xeon X5690 (12 МБ L3, 3,46 ГГц), 24 ГБ DDR3 1333 МГц, одним Intel 5520 IOH, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (C0 Si, 1.2GHz, 2GB GDDR5 3,0 ГТ/с), программный стек и инструменты Alpha 5 Intel MIC.
CERN openlab: Масштабирование на ядра архитектуры Intel MIC
ЦЕРН демонстрирует программное ядро, извлеченное из платформы разработки CBM/ALICE HLT для экспериментов в коллайдере. Оно оценивает реальные траектории на основе неточных измерений.
Ядро используется для отбора наиболее интересных событий, информация о которых направляется с детекторов в вычислительные центры. Экспериментальный проект CERN на базе архитектуры Intel MIC призван оценить масштабируемость. Ученые выяснили, когда код хорошо распараллелизирован и векторизирован при добавлении ядер Intel MIC обеспечивается рост линейной производительности.
Демонстрация показывает диаграмму измеренной производительности в зависимости от числа используемых ядер. ЦЕРН наблюдал рост линейной производительности при 32 ядрах на Knights Ferry, что является отличной новостью, так как Intel планирует увеличить число ядер на Knights Corner.
Первоначально приложение создавалось для многоядерных систем и затем было легко переведено на сопроцессор Intel MIC — благодаря хорошей поддержке стандартных языков и моделей программирования.
Системная конфигурация: Платформа SGI H4002 с двумя 6-ядерными процессорами Intel Xeon X5690 (12 МБ L3, 3,46 ГГц), 24 ГБ DDR3 1333 МГц, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (C0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,0 ГТ/с).
7.4 TFLOP SGEMM на вычислительное ядро
В данной демонстрации приложение SGEMM (Single Precision General Matrix Multiplication) одновременно работало на восьми платах Knights Ferry, установленных в систему от Colfax. Суммировав производительность SGEMM на каждой плате в системе, мы получили около 7,4 терафлоп/с конечной производительности. Данный пример будет интересен для заказчиков, нуждающихся в высокопроизводительных системах. Он позволяет получить предварительное представление об эффективности архитектуры Intel MIC. Без задержек при передаче данных по шине PCIe мы видим 925 гигафлоп/с измеренной постоянной производительности SGEMM на одну плату Knights Ferry, каждая с 1200 гигафлоп/с теоритической пиковой производительности.
Системная конфигурация: Платформа Colfax CXT8000 с двумя 6-ядерными процессорами Intel Xeon X5690 (12 МБ L3, 3,46 ГГц), 24 ГБ DDR3 1333 МГц, двумя Intel 5520 IOH, 4 коммутаторами PLX PeX8647 Gen 2 PCIe, RHEL 6.0 OS, восемью платами с сопроцессорами Knights Ferry (D0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,6 ГТ/с), программный стек и инструменты Alpha 5 Intel MIC.
Гибридные вычисления — SGEMM + Intel MKL
Данная демонстрация показывает, что пользователи могут получить более 1 терафлоп/с производительности SGEMM всего лишь в 18 строках кода, используя Intel Math Kernel Library (MKL) с начальными версиями инструментов, доступных партнерам Intel MIC. Intel MKL одновременно использует процессоры Intel Xeon и Knights Ferry с целью достижения значительных уровней производительности.
Важно отметить, что при переходе от конфигурации только с процессорами Intel Xeon к конфигурации Xeon процессоры +MIC не нужно изменять ни одну строку кода. Intel MKL берет на себя работу по проверке доступности Knights Ferry в системе и исполняет SGEMM на конфигурации с только с процессорами Intel Xeon или на процессоры Xeon+MIC, в зависимости от доступности Knights Ferry.
Системная конфигурация: Платформа Intel Shady Cove Software Development Platform с двумя 6-ядерными процессорами Intel Xeon X5680 (12 МБ L3, 3,33 ГГц), 24 ГБ DDR3 1333 МГц, одним Intel 5520 IOH, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (D0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,6 ГТ/с), программный стек и инструменты Alpha 5 Intel MIC.
Гибридные вычисления — LU Factorization
Данная демонстрация относится к представленному на ISC техническому документу Intel «Designing and Dynamically Load Balancing Hybrid LU for Multi/Many-core». В прошлом году мы представили платформу Knights Ferry, предлагающую более 500 гигафлоп/с на LU Factorization с предварительной версией программного стека. В данной демонстрации мы воспользовались преимуществом общей модели программирования между процессорами Xeon и MIC и одновременно использовали Knights Ferry и Xeon для получения на LU Factorization более высокой производительности — мы получили стабильную производительность до 772 гигафлоп/с. Общая модель программирования позволяет динамически обрабатывать матрицы меньшего размера на процессорах Intel Xeon и матрицы большего размера на Intel MIC, получая оптимальный уровень производительности в целом.
Системная конфигурация: Платформа Intel Shady Cove Software Development Platform с двумя 6-ядерными процессорами Intel Xeon X5680 (12 МБ L3, 3,33 ГГц), 24 ГБ DDR3 1333 МГц, одним Intel 5520 IOH, RHEL 6.0 OS, одной платой с сопроцессором Knights Ferry (D0 Si, 1,2 ГГц, 2 ГБ GDDR5 3,6 ГТ/с), программный стек и инструменты Alpha 5 Intel MIC.