Эффективность выполнения тестов NAS NPB 3.3

Результаты получены в Январе 2020 г.

C помощью системы автоматизированного распараллеливания SAPFOR были распараллелены тесты производительности из пакета NAS Parallel Benchmarks, нацеленные на проверку возможностей высокопараллельных суперкомпьютеров. Было выполнено распараллеливание последовательных версий тестов, написанных на языке Си [1]. Тесты были разработаны в рамках программы NASA Numerical Aerodynamic Simulation Program и поддерживаются в NASA Advanced Supercomputing (NAS) Division. Было выполнено автоматизированное распараллеливание следующих тестов:

  • CG (Conjugate Gradient) – Приближение к наименьшему собственному значению большой разреженной симметричной положительно определенной матрицы с использованием метода обратной итерации вместе с методом сопряженных градиентов в качестве подпрограммы для решения СЛАУ.
  • EP (Embarrassingly Parallel) – Генерация независимых нормально распределенных случайных величин при помощи Marsaglia polar метода.
  • BT (Block Tridiagonal) и LU (Lower-Upper) – Решают синтетическую систему нелинейных дифференциальных уравнений в частных производных (3-х мерная система уравнений Навье-Стокса для сжимаемой жидкости или газа), используя два алгоритма: блочная трехдиагональная схема с методом переменных направлений (BT) и метод симметричной последовательной верхней релаксации (алгоритм SSOR, задача LU).

Для каждой задачи существует набор входных данных. Данный набор определяется классом теста. Всего существует 7 классов: S и W – задают очень маленькие входные данные, используются в основном для тестирования и отладки во время разработки; A, B, и С – задают маленькие, средние и большие входные данные, которые предназначены для тестирования одного узла; D и E – задают очень большие и огромные входные данные, которые предназначены для тестирования нескольких узлов.

В циклах тестов CG, EP  нет зависимостей по данным. В циклах тестов LU, BT присутствуют регулярные зависимости по данным, так как в основном алгоритме используется метод попеременных направлений (BT) и метод последовательной верхней релаксации (LU), который образует зависимость по трем измерениями массива.

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

В Таблице 1 представлены времена выполнения распараллеленных тестов:

  • Последовательные версии исходных тестов, выполненных на одном ядре процессора Intel Xeon E5 1660 v2.
  • Параллельные версии тестов, написанные на  языке Fortran-DVMH,  выполненные на NVIDIA GTX Titan (поколения Kepler).
  • Параллельные версии тестов, написанные на  языке Fortran-DVMH,  выполненные на 6-ти ядерном процессоре Intel Xeon E5 1660 v2 с включенным Hyper Threading (2 потока на ядро) и отключенным Turbo Boost.

Последовательные версии программ были скомпилированы с помощью Intel Fortran Compiler V19.0 c опциями -O3 -mcmodel=medium -shared-intel. Для компиляции СDVMH программ использовались:

  • Intel Fortran Compiler V19.0 с опциями -O3 -no-scalar-rep -qopenmp;
  • Intel C/C++ Compiler V19.0 с опциями -O3 -no-scalar-rep -qopenmp;
  • NVIDIA Compiler V8.0 с опциями -arch=sm_35 -O3 -DCUDA_NO_SM_20_INTRINSICS.

В связи с отсутствием MPI-версий для программ, написанных на языке C, для сравнения приведены времена запусков версий программ на Fortran DVMH, написанных вручную и времена MPI-версий от разработчиков пакета программ. Последовательные C версии близки к оригинальным Фортран-версиям программ, времена последовательного выполнения также близки. Есть небольшое преимущество в выполнении последовательных С версий, которое связано, скорее, с особенностями реализации компиляторов с языка Си, чем с отличиями между исходными кодами версий. Это позволяет говорить о возможности сравнения ускорений получаемых для Фортран и Си версий программ между собой. На Рис. 1 приведено сравнение эффективности выполнения тестов распараллеленных с помощью MPI (Fortran), Fortran-DVMH и C-DVMH. Стоит отметить, что запуск MPI-версий тестов возможен только на определенных конфигурациях, в отличие от DVMH-версий, которые могут быть запущены на всех имеющихся ресурсах. При указании времени выполнения MPI-версий тестов в скобках также указана конфигурация запуска.

Таблица 1. Времена выполнения тестов NAS NPB 3.3
Таблица 1. Времена (.c) выполнения тестов NAS NPB 3.3
Тесты Fortran C Fortran-DVMH Fortran-MPI C-DVMH (SAPFOR)
Intel Xeon E5 1660 v2 NVIDIA GTX Titan
(без ECC)
Intel Xeon E5 1660 v2 Intel Xeon E5 1660 v2 (конфигурация) NVIDIA GTX Titan
(без ECC)
Intel Xeon E5 1660 v2
BT A 37,61 39,71 2,59 7,23 11,03 (n=9) 18,17 8,73
B 157,3 169,72 8,35 27,89 50,32 (n=9) 51,42 35,62
C 679,18 720,86 27,63 114,43 194,13 (n=9) 159,49 153,71
LU A 27,91 29,02 4,02 5,03 6,86 (n=12) 5,68 5,07
B 119,46 121,8 11,18 23,06 28,35 (n=12) 15,29 18,79
C 522,22 552,39 33,29 100,98 222,34 (n=12) 51,09 74,47
EP A 15,97 15,83 0,43 1,49 2,35 (n=8) 0,46 1,65
B 63,94 63,2 1,04 5,92 9,45 (n=8) 1,3 7,08
C 255,75 252,94 3,89 23,68 35,58 (n=8) 4,26 28,3
CG A 0,84 0,82 0,66 0,36 0,3 (n=12) 0,71 0,36
B 78,16 75,99 22,95 15,39 20,37 (n=12) 14,69 15,96
C 210,23 213,11 66,59 40,89 56,2 (n=12) 44,25 41,81
GPU-MG-CG-FT-05-2017-ru
Рис. 1.  Эффективность выполнения тестов, распараллеленных с помощью MPI (Fortran), Fortran-DVMH и C-DVMH.

[1] Seo, S., Jo, G., Lee, J.: Performance Characterization of the NAS Parallel Benchmarks in OpenCL. In: 2011 IEEE International Symposium on. Workload Characterization (IISWC), pp. 137-148. (2011)