Привязки ядра OpenMPI и OpenMP - PullRequest
       35

Привязки ядра OpenMPI и OpenMP

1 голос
/ 04 февраля 2020

Я прочитал статью [1] о запуске linpack на AMD. Насколько я понимаю, стратегия выполнения состоит в том, чтобы иметь 1 ранг MPI на кэш L3 с 4 потоками каждый, поскольку кэш l3 предназначен для четырех физических ядер. Теперь, читая статью, у меня есть три вопроса, на которые я не могу ответить, прибегая к помощи Google:

1) Он тестирует систему с одним процессором. Я думаю, что в целом OpenMPI используется для развертывания linpack в кластере. Но есть ли какой-то выигрыш в производительности при использовании нескольких рангов MPI вместо одного ранга с большим количеством потоков? На машине с несколькими сокетами / с общей памятью это, по моему мнению, не должно иметь никакого значения.

2) Он запускает бенчмарк следующим образом:

export OMP_PROC_BIND=TRUE
export OMP_PLACES=cores
export OMP_NUM_THREADS=4
mpirun -np 8 --map-by l3cache --mca btl self,vader xhpl

Моя проблема в том, что стандартная настройка mpirun для bind-to связана с ядрами. Насколько я понимаю, это означает, что каждый ранг связан с одним ядром. Теперь, хотя потоки OMP также связаны с ядрами, я не вижу, чтобы четыре потока на ранг выполнялись на четырех ядрах. Вместо этого, поскольку ранг (процесс) связан с одним ядром, ранг состоит из четырех потоков OMP, которые все используют одно и то же ядро, которое не предназначено? У меня нет процессора для проверки моего предположения. Правильно ли я понимаю, что здесь отсутствует параметр --bind-to l3cache, чтобы позволить потокам OMP распределяться по всем ядрам, разделяющим кэш-память l3? Если нет, то почему?

3) Он заявляет, что при тестировании следует отключить SMT. Почему? Я знаю, что аппаратные потоки не всегда повышают производительность, если общие исполнительные блоки, такие как FPU, насыщены, но почему они могут снизить производительность?

Большое спасибо за вашу помощь.

С уважением, Максимилиан

[1] https://www.pugetsystems.com/labs/hpc/How-to-Run-an-Optimized-HPL-Linpack-Benchmark-on-AMD-Ryzen-Threadripper----2990WX-32-core-Performance-1291

...