簡體   English   中英

使用MPI應用程序運行性能

[英]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.

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