Мы установили крутящий момент на двойной Xeon (26 ядер, 52 доступны в гиперпоточности). Узел настроен с np = 104. Если я запускаю вычисление MPI в командной строке, я получаю почти 100% использование процессора:
% ЦП: 53,9 мкс, 44,6 си, 0,0 ни, 1,4 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
Однако, если я запустил тот же расчет с этим файлом отправки крутящего момента:
#!/bin/bash
#PBS -l walltime=20:00:00:00
#PBS -l nodes=1:ppn=104
#PBS -q batch
#PBS -N QE_test
cd $PBS_O_WORKDIR
/usr/lib64/openmpi/bin/mpirun -np 104 /opt/qe-6.3/bin/pw.x -inp scf.in > scf.out
Загрузка процессора составляет около 50%:
% ЦП: 32,5 мкс, 22,9 синхр., 0,0 нв, 44,6 ед., 0,0 ва, 0,0 выс., 0,0 кв.
Вы знаете почему?
pbsnodes -a
servername
state = free
np = 104
ntype = cluster
status = rectime=1540890927,varattr=,jobs=,state=free,netload=? 0,gres=,loadave=0.00,ncpus=52,physmem=199919700kb,availmem=193132384kb,totmem=199919700kb,idletime=343335,nusers=0,nsessions=0,uname=Linux servername 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64,opsys=linux
mom_service_port = 15002
mom_manager_port = 15003
Я решил проблему. Сначала отключил гиперпоточность (Отключить гиперпоточность из Linux (нет доступа к BIOS)). Mpi в командной строке показывает почти 100% использование, когда это было 50% использования и 50% системы с гиперпоточностью. Во-вторых, я понизил крутящий момент для версии без поддержки нума (с крутящего момента-4.2.10-10.el7.x86_64 до крутящего момента-4.2.10-5.el7.x86_64). После этого команда pbsnodes -a покажет ncpus = 52, когда было 26 с поддержкой numa. Теперь я получаю тот же результат с mpirun -np 52 по крутящему моменту.