Приложения для инженерных и научных расчетов в качестве инструментов для тестирования производительности ПК

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

В этой статье мы рассмотрим еще несколько приложений, тесты на базе которых можно отнести к логической группе «Инженерные и научные расчеты»: SolidWorks, Matlab, NAMD и LAMMPS.

Этот набор приложений мы использовали и ранее, в предыдущей версии нашего тестового пакета. Причем в предыдущей версии у нас было даже больше приложений в данной логической группе: был еще тест на основе приложения FFTW. Однако учитывая узкую специфику приложения FFTW и тот факт, что среда Windows для него не совсем родная (хотя его и можно скомпилировать под Windows), мы решили убрать этот тест из нашего набора.

Более того, у нас есть сомнения и по поводу приложений NAMD и LAMMPS. Напомним, что это специализированные пакеты, которые применяются для решения задач молекулярной динамики. Сомнения относительно целесообразности включения данных приложений в тестовый пакет все те же. Во-первых, это очень специфический софт. Во-вторых, для таких приложений среда Windows является, что называется, не самой оптимальной. Да, имеются скомпилированные под Windows версии, но все же изначально эти приложения разрабатывались под Linux. И в-третьих, такие приложения запускают не на ноутбуках, а на суперкомпьютерах.

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

LAMMPS

Приложение LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) используется для расчетов взаимодействий до десятков миллионов атомов. Программа написана на языке C++ и не имеет графического интерфейса (только командный режим). Возможна компиляция исходных кодов под различные операционные системы (Linux, macOS, Windows). Кроме того, имеется большое количество различных опций компиляции, которые позволяют создавать исполняемый файл под конкретную архитектуру процессора и архитектуру графического процессора. Учебник с описанием всех возможностей данного пакета есть на сайте разработчиков.

На сайте выкладываются заранее скомпилированные версии программы для различных операционных систем. Для тестирования мы воспользовались последней 64-битной Windows-версией LAMMPS 64-bit (от 23.10.2017). Версия программы по сравнению с тестами прошлого года обновилась, но, как мы выяснили, на результатах это никак не отразилось.

Напомним, что программа может запускаться как в однопоточном, так и в многопоточном (в случае многоядерных процессоров и многопроцессорных систем) режиме. Но для запуска в многопоточном режиме необходимо дополнительно установить 64-битную версию пакета MPICH2 компании Argonne lab (mpich2-1.4.1p1-win-x86-64.msi).

Более подробно с особенностями использования Windows-версии пакета LAMMPS можно ознакомиться здесь.

Саму тестовую задачу мы не меняли. Напомним, что при инсталляции пакета LAMMPS создается папка с названием Benchmarks. В этой папке содержатся файлы с задачами, которые можно использовать для тестирования. Всего в папке Benchmarks имеется пять различных задач, но использовать их все для наших целей избыточно, поэтому мы используем только две задачи: Rhodopsin protein benchmark (rhodo) и Lennard-Jones liquid benchmark (lj)). Подробное описание этих бенчмарков (на английском языке) можно найти по ссылке.

Мы не будем расписывать подробно команды запуска тестов (все это можно найти в статье, посвященной предыдущей версии нашего тестового пакета) и напомним лишь, что для прогона тестов используется bat-файл, запускаемый с параметром, в качестве которого указывается количество ядер процессора (с учетом технологии Hyper-Threading).

NAMD 2.11

Пакет NAMD (NAnoscale Molecular Dynamics) не обновился, поэтому здесь все еще проще. Мы не стали менять и тестовую задачу (в этом нет никакого смысла). Подробное описание данного теста можно найти в статье, посвященной предыдущей версии нашего тестового пакета. А здесь мы лишь напомним основные моменты.

Как и в случае LAMMPS, программа NAMD не имеет графического интерфейса и для ее запуска используется командная строка, а для запуска в многопоточном режиме используется интерфейс MPI.

На сайте разработчика имеются заранее скомпилированные версии программы для различных операционных систем. Для тестирования мы используем 64-битную Windows-версию NAMD 2.11 с поддержкой MPI (Win64 MPI).

Для запуска программы в многопоточном режиме необходимо дополнительно установить пакет MPI (Message Passing Interface). В нашем случае используется версия MPI Microsoft (MS-MPI 7.1).

Для тестирования мы использует тест f1atpase, который был нами позаимствован из пакета SPECwpc 2.0, в который входит тест на основе приложения NAMD. Запуск теста реализуется через интерфейс MPI.

Mathworks Matlab R2017b

В тесте на основе приложения Mathworks Matlab R2017b мы обновили лишь версию самого приложения, а вот тестовая задача осталась прежней. Напомним, что в качестве теста мы используем решение задачи о колебаниях прямоугольной мембраны с закрепленными краями. Этот пример был нами позаимствован из учебника по Matlab (Matlab самоучитель. Практический подход (2-е издание). Автор Васильев А. Н.).

Не вникая в постановку задачи и сложные математические выкладки, приведем лишь аналитическое решение данной задачи, которое представляется в виде бесконечного ряда:

Данная формула используется в скрипте Matlab для построения профиля поверхности мембраны в заданный момент времени. Точнее, рассчитывается профиль поверхности мембраны для конечного числа точек в заданном временно́м интервале с построением трехмерного изображения поверхности мембраны. Это делается для того, чтобы реализовать анимацию колебания мембраны.

Dassault SolidWorks 2017 с пакетом Flow Simulation 2017

В тесте на основе приложения Dassault SolidWorks изменилась лишь версия самого приложения. Вместо Dassault SolidWorks 2016 SP0 используется Dassault SolidWorks Premium Edition 2017 SP4.2. Обновилась и версия устанавливаемого модуля Flow Simulation: теперь это SolidWorks Flow Simulation 2017.

Напомним, что в нашем тесте определяется скорость расчетов в задачах аэрогидродинамики и теплопередачи. В тесте используется тепловой расчет корпуса компьютера, в котором имеются тепловыделяющие элементы и один вентилятор. Этот проект входит в пакет Flow Simulation в качестве примера. Результатом теста является время расчета проекта.

В новой версии приложения Dassault SolidWorks Premium Edition 2017 есть свой встроенный бенчмарк, и мы даже хотели использовать его, однако он не очень подходит для нашего тестового пакета. Это хороший бенчмарк, который позволяет интегрально измерять производительность процессора, графической подсистемы и подсистемы ввода/вывода, но в большей степени он ориентирован на тестирование профессиональных (даже не игровых) видеокарт, нежели процессора. Кроме того, результат, который выдает этот тест, довольно сложно интегрировать в наш тестовый пакет, поэтому мы решили все-таки не использовать встроенный бенчмарк.

Зависимость результатов от числа ядер процессора и технологии Hyper-Threading

Для того чтобы проанализировать зависимость результатов тестирования от количества ядер процессора и технологии Hyper-Threading, мы использовали стенд следующей конфигурации:

  • процессор: Intel Core i7-8700K;
  • видеокарта: процессорное графическое ядро (Intel UHD Graphics 630);
  • память: 16 ГБ DDR4-2400 (двухканальный режим работы);
  • материнская плата: Asus Maximus X Hero (Intel Z370);
  • накопитель: SSD Seagate ST480FN0021 (480 ГБ, SATA);
  • операционная система: Windows 10 (64-битная).

Количество доступных ядер процессора (от одного до шести) регулировалось в настройках UEFI BIOS. Один раз тестирование проводилось при использовании технологии Hyper-Threading, а второй раз — при отключении данной технологии в UEFI BIOS.

Результаты тестирования при использовании технологии Hyper-Threading приведены далее.

Как видно по результатам, все тесты очень чувствительны к числу ядер процессора. Так, время выполнения теста на основе приложения LAMMPS сокращается в 5 раз при переходе от одного к шести ядрам процессора. Для теста на основе приложения NAMD 2.11 сокращение времени составляет 5,6 раза. А вот для тестов на основе приложений Dassault SolidWorks 2017 с пакетом Flow Simulation 2017 и Mathworks Matlab R2017b ускорение составляет 3,0 и 3,8 раза соответственно.

Результаты тестирования при отключенной технологии Hyper-Threading приведены далее. Собственно, здесь получаются очень похожие зависимости, но при отключенной технологии Hyper-Threading зависимость результатов от числа ядер процессора выражена еще более ярко. Теперь при переходе от одного к шести ядрам процессора время выполнения теста сокращается в 6,2 и 6,1 раза для тестов на основе приложений NAMD 2.11 и LAMMPS, а для тестов на основе приложений Dassault SolidWorks 2017 с пакетом Flow Simulation 2017 и Mathworks Matlab R2017b ускорение составляет 3,6 и 4,4 раза соответственно.

Можно также сопоставить для каждого теста в отдельности результаты тестирования при использовании технологии Hyper-Threading с результатами без этой технологии.

Для теста на основе приложения LAMMPS использование технологии Hyper-Threading позволяет сократить время расчета примерно на 30% в случае одного ядра и на 16% при шести ядрах процессора.

Для теста на основе приложения NAMD 2.11 использование технологии Hyper-Threading сокращает время расчета на 19% в случае одного ядра и примерно на 12% в остальных случаях.

В приложении Dassault SolidWorks 2017 с пакетом Flow Simulation 2017 использование технологии Hyper-Threading сокращает время расчета на 24% в случае одного ядра, но при увеличении числа ядер до шести сокращение времени расчета уменьшается до 9%.

Расчет в приложении Mathworks Matlab R2017b вообще мало зависит от технологии Hyper-Threading. В варианте одного ядра процессора сокращение времени расчета составляет 10% при использовании технологии Hyper-Threading, а при числе ядер больше двух более заметного эффекта от использования технологии Hyper-Threading не наблюдается.

Заключение

В этой статье мы рассмотрели тесты на основе приложений LAMMPS, NAMD 2.11, Dassault SolidWorks 2017 с пакетом Flow Simulation 2017 и Mathworks Matlab R2017b, которые составляют логическую группу «Инженерные расчеты» и в дальнейшем будут использоваться в нашем тестовом пакете iXBT Application Benchmark 2018. Еще раз отметим, что тесты на основе приложений LAMMPS и NAMD 2.11 являются очень узкоспециализированными и у нас есть сомнения относительно целесообразности их включения в тестовый пакет. Пока мы решили их оставить, а дальше, что называется, посмотрим.

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

15 марта 2018 Г.