De relance, a média de carga 400 parece alta para uma caixa de 72 núcleos da CPU. Mais tarefas prontas para serem executadas do que os núcleos normalmente significa que algumas delas estão esperando.
A hora do sistema pode ser uma série de coisas. Para cargas de trabalho com limite de computação, como o que pode ser, a CPU do sistema de 30% parece alta.
Para ver exatamente o que está acontecendo, você pode amostrar os gráficos de chamada em todo o sistema e, em seguida, transformá-los em visualizações nítidas chamadas gráficos de chama .
# Looks like you have a Debian install
# Install debug symbols for the kernel and Linux perf
apt-get install linux-image-amd64-dbg linux-tools
git clone https://github.com/brendangregg/FlameGraph # or download it from github
cd FlameGraph
perf record -F 99 -a -g -- sleep 60
perf script | ./stackcollapse-perf.pl > out.perf-folded
./flamegraph.pl out.perf-folded > perf-kernel.svg
Os patamares mais largos do gráfico devem indicar onde a maior parte do tempo é gasta.
O que fazer sobre isso depende do que você encontra. Eu não estou familiarizado com o openMP, mas se ele já é executado em paralelo, limite o número de trabalhos simultâneos. Não os faça lutar uns contra os outros por recursos.
800% da CPU em uma tarefa implica que você tenha tarefas multiencadeadas, usando talvez 8 núcleos. Se isso for típico, a execução de 8 ou 9 deles manterá 72 núcleos utilizados. Existem maneiras de executar scripts em paralelo até que um determinado nível de carga seja alcançado, em particular o GNU paralelo.