2
我想知道如何使用ltrace獲取mpi應用程序的庫函數調用,但只是ltrace不起作用,我的mpirun無法成功。 有什麼想法?如何爲mpi程序使用ltrace?
我想知道如何使用ltrace獲取mpi應用程序的庫函數調用,但只是ltrace不起作用,我的mpirun無法成功。 有什麼想法?如何爲mpi程序使用ltrace?
你應該能夠簡單地使用:
$ mpiexec -n 4 -other_mpiexec_options ltrace ./executable
但是,這將創造一個巨大的混亂,因爲從不同級別的輸出將合併。更好的選擇是將ltrace
的輸出重定向到每個等級的單獨文件。使用一些MPI實現獲得排名很容易。例如,Open MPI將世界排名導出到環境變量OMPI_COMM_WORLD_RANK
中。以下包裝器腳本將幫助:
#!/bin/sh
ltrace --output trace.$OMPI_COMM_WORLD_RANK $*
用法:
$ mpiexec -n 4 ... ltrace_wrapper ./executable
這將產生4個跟蹤文件,每個等級:trace.0
,trace.1
,trace.2
和trace.3
。
對於基於MPICH和其他MPI實現並使用Hydra PM輸出PMI_RANK
和上面給出的腳本必須修改並OMPI_COMM_WORLD_RANK
用PMI_RANK
替換。人們也可以編寫一個通用包裝器,與兩個MPI系列實現一起工作。