Вычислительное дело и кластерные системы

Приложение 3. Работа с тестом High Performance LINPACK

Показывать лекцию целиком

Для того, чтобы измерить производительность кластерной системы на тесте High Performance Linpack (HPL), потребуется сам тест и библиотека BLAS. Собственно тест HPL доступен по адресу http://www.netlib.org/benchmark/hpl/hpl.tgz. Настоятельно не рекомендуем использовать библиотеку BLAS, поставляемую с дистрибутивами Linux. Этот вариант очень неэффективен на современных вычислительных платформах, поскольку рассчитан на работу на процессорах Intel 80386. Наиболее удачными библиотеками, содержащими BLAS, являются:

  • Atlas (http: //www.netlib.org/atlas/),
  • GotoBLAS (http://www.tacc.utexas.edu/resources/software/#blas),
  • Intel MKL (http://www3.intel.com/cd/software/products/asmo-na/eng/perf lib/).
  • Установите библиотеку BLAS (или содержащую BLAS), распакуйте архив с дистрибутивом HPL. Перейдите в созданный каталог, скопируйте из каталога setup любой файл вида Make.<ARCH>. Переименуйте его в Make.MyArch, где MyArch - произвольное название архитектуры узлов. Например, Lin_xeon. Теперь отредактируйте этот файл, указав пути к библиотекам BLAS и компиляторам.

    Обязательно измените название переменной ARCH в соответствии с названием архитектуры. В качестве компиляторов Си, Фортран и линкеров укажите команды mpicc и mpif77. Переменные MPinc и MPlib укажите пустыми.

    Теперь можно запустить команду make arch=MyArch ( MyArch -имя выбранной архитектуры). Если компиляция прошла успешно, перейдите в каталог bin/MyArch и убедитесь в наличии исполняемого файла xhpl. Скопируйте в этот каталог файл bin/HPL.dat и отредактируйте его в соответствии с конфигурацией кластера.

    Для высоких значений производительности важно подобрать размер задачи так, чтобы использовалась вся оперативная память узлов. Подробное описание формата HPL.dat можно найти в файле TUNING. Особенно обратите внимание на строки 6 - это размеры используемых матриц, они всегда квадратные, и строки 11-12 - это варианты разбиения матрицы по процессорам.

    Пример файла HPL.dat (слева указаны номера строк):

    01: HPLinpack benchmark input file
    02: Innovative Computing Laboratory, University of Tennessee
    03: HPL.out      output file name (if any)
    04: 6            device out (6=stdout,7=stderr,file
    05: 2            # of problems sizes (N)
    06: 25000 30000  Ns
    07: 3            # of NBs
    08: 200 224 250  NBs
    09: 0            PMAP process mapping (0=Row-,1=Column-major)
    10: 3            # of process grids (P x Q)
    11: 5 6 3        Ps
    12: 6 5 10       Qs
    13: 16.0         threshold
    14: 1            # of panel fact
    15: 1            PFACTs (0=left, l=Crout, 2=Right)
    16: 1            # of recursive stopping criterium
    17: 4            NBMINs (>= 1)
    18: 1            # of panels in recursion
    19: 2            NDIVs
    20: 1            # of recursive panel fact.
    21: 1            RFACTs (0=left, l=Crout, 2=Right)
    22: 1            # of broadcast
    23: 0            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
    24: 1            # of lookahead depth
    25: 0            DEPTHs (>=0)
    26: 2            SWAP (0=bin-exch,1=long,2=mix)
    27: 64           swapping threshold
    28: 0            L1 in (0=transposed,1=no-transposed) form
    29: 0            U  in (0=transposed,1=no-transposed) form
    30: 1            Equilibration (0=no,1=yes)
    31: 8            memory alignment in double (> 0)

    В примере используются матрицы на 25000x25000 и ЗООООхЗОООО элементов (строки 05 и 06), размеры блоков 200x200, 224x224 и 250x250 (строки 07 и 08). Матрица распределяется между 30 процессорами тремя вариантами: 5x6, 6x5 и 3x10 (строки 10-12). Остальные параметры обычно не столь значимы, и подробно их рассматривать здесь не будем.

    После редактирования файла HPL.dat уже можно запускать тест HPL, для чего нужно воспользоваться командой

    mpirun -np N ./xhpl

    Число процессоров N должно быть не меньше максимального произведения соответствующих вариантов пар Ps и Qs (строки 11-12).

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

    Вернуться к учебному плану