[英]Run perf with an MPI application
perf
是一種性能分析工具,可以報告硬件和軟件事件。 我正在嘗試使用MPI應用程序運行它,以了解該應用程序在每個內核中花費多少時間進行數據傳輸和計算操作。
通常,我將使用
mpirun -np $NUMBER_OF_CORES app_name
它會在多個核心或可能的多個節點上生成。 是否有可能增加perf
在上面? 我試過了
perf stat mpirun -np $NUMBER_OF_CORES app_name
但是,此輸出看起來像是mpirun的某種匯總。 有沒有一種方法可以從每個內核收集性能類型數據?
就像是:
mpirun -np $NUMBER_OF_CORES ./myscript.sh
可能與myscript.sh一起使用,其中包含:
#! /bin/bash
perf stat app_name %*
您應該在perf調用中添加一些參數,以產生名稱不同的結果文件。
perf
可以遵循產生的子進程。 要分析位於同一節點上的MPI進程,您只需
perf stat mpiexec -n 2 ./my-mpi-app
您也可以使用性能perf record
。 它將創建一個單一的perf.data
文件,其中包含所有本地MPI進程的分析信息。 但是,這不允許您分析單個MPI等級。
要查找有關各個MPI等級的信息,您需要運行
mpiexec -n 2 perf stat ./my-mpi-app
這將描述各個等級,並且還將跨多個節點工作。 但是,這不適用於某些perf
命令,例如perf record
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.