簡體   English   中英

查找OpenMP + MPI應用程序的資源

[英]Locating resource for OpenMP + MPI application

我目前正在使用c ++開發混合程序。 我同時使用openMP和MPI。 但是,我不知道如何為我的工作指定處理器和線程的數量。 假設我要使用5個節點,並且每個節點上需要一個MPI處理器,每個節點需要24個線程。

這是我現在提交my_job

qsub -l select=5:ncpus=24:mpiprocs=5 -l place=scatter:exclhost my_job

my_job腳本上,我正在執行此操作

#PBS -l select=5:ncpus=24:mpiprocs=5
export OMP_NUM_THREADS=24
mpic++ -O3 myprogram.cpp -o out -fopenmp -lquadmath -std=gnu++11
mpirun -n 5 ./out

但是,性能非常慢,這使我認為我如何定位資源可能存在問題。

有什么建議嗎?

感謝Gilles,我也忘記了在運行作業時指定每個節點的處理器數量:

mpirun -n 5 -ppn 1 ./out

此外,我已將以下行添加到my_job腳本中:

export IPATH_NO_CPUAFFINITY=1 // - tells the underlying software not to pin each process to one CPU core, which would effectively disable OpenMP parallelism.

兩種解決方案都“大大”改善了性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM