Параллельные вычисления: как распределить вычислительные ресурсы между пользователями? - PullRequest
2 голосов
/ 28 февраля 2020

Я запускаю симуляцию на Linux машине со следующими спецификациями.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                80
On-line CPU(s) list:   0-79
Thread(s) per core:    2
Core(s) per socket:    20
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
Stepping:              4
CPU MHz:               3099.902
CPU max MHz:           3700.0000
CPU min MHz:           1000.0000
BogoMIPS:              4800.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              28160K

Это скрипт командной строки запуска для моего решателя.

/path/to/meshfree/installation/folder/meshfree_run.sh    # on 1 (serial) worker
/path/to/meshfree/installation/folder/meshfree_run.sh N  # on N parallel MPI processes

Я делюсь система с другим моим коллегой. Он использует 10 ядер для своего решения. Что будет самым быстрым вариантом для меня в этом случае? Использование 30 процессов MPI?

Я инженер-механик с очень небольшими знаниями в области параллельных вычислений. Поэтому, пожалуйста, извините, если вопрос слишком глупый.

1 Ответ

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

Q : "Что будет самым быстрым вариантом для меня в этом случае? ... не хватает времени. Я уже в середине симуляции."

Салюты Аахену. Если бы не предварительное замечание, самый быстрый вариант состоял бы в предварительной настройке вычислительной экосистемы таким образом, чтобы:

  • проверил полную информацию о вашем устройстве NUMA - используя lstopo или lstopo-no-graphics -.ascii, а не lscpu enter image description here
  • , инициируйте ваши задания, имея максимально возможное число рабочих процессов MPI, отображаемых на физическое (и лучше всего каждое из них отображается исключительно на его приватное ) ядро ​​ЦП (поскольку они этого заслуживают, поскольку несут рабочую нагрузку ядра FEM / обработки сетки)
  • , если ваша политика FH не запрещает сделав это, вы можете попросить системного администратора ввести сопоставление с процессором (которое защитит ваши данные в кеше от выселения и дорогостоящих повторных выборок, что сделает отображение 10-CPU исключительно для использования вашим коллега и упомянутые 30-ЦП, отображенные исключительно для ваших приложений, а остальные из перечисленных ресурсов ~ 40-ЦП ~ являются " shared " - для использования обоими, в соответствии с вашей привязкой к ЦП маски.

Q : «Использование 30 процессов MPI?»

Нет, это не разумное допущение для обработки ASAP - использовать как можно больше процессоров для рабочих для уже распараллеленного MPI-моделирования FEM (они имеют высокую степень параллелизма и чаще всего имеют «узкую» местность по своей природе (будь она представлена ​​как разреженная) -матрица / N-полосная матрица), поэтому параллельная часть часто очень высока по сравнению с другими числовыми задачами) - Закон Амдала объясняет почему. enter image description here

Конечно, могут быть некоторые академические c -противоречивости относительно возможного небольшого различия, в случаях, когда накладные расходы на связь могут быть немного уменьшены на одного работника (-ов), но потребность в правилах обработки грубой силы в FEM / решателях сетки (затраты на связь, как правило, намного дешевле, чем крупномасштабная часть FEM-сегментированных вычислений, отправляющая небольшое количество соседних блоков данные о состоянии «граничного» узла

htop покажет вам фактическое состояние (может отметить процесс: процессорное ядро ​​блуждает из-за трюков с тепловой / балансировкой ядра HT / CPU, которые уменьшаются итоговая производительность)

enter image description here

И обратитесь к meshfree поддержке их источников знаний в базе знаний о передовой практике.


В следующий раз - лучшим вариантом было бы приобрести менее ограничивающую вычислительную инфраструктуру для обработки критических рабочих нагрузок (учитывая, что в критических бизнес-условиях это считается риском гладкой BAU, тем более, если это влияет на ваш бизнес- преемственность).

...