Se você estiver distribuindo os cálculos com MPI, usar uma ferramenta com reconhecimento de MPI fornecerá resultados mais sensatos: com um aplicativo distribuído, você pode ter problemas de desequilíbrio de carga, onde um processo MPI está ocioso aguardando dados virem de outros processos. Se acontecer de você estar elaborando exatamente esse processo de MPI, seu perfil de desempenho estará todo errado.
Portanto, o primeiro passo é geralmente descobrir o padrão de comunicação e balanceamento de carga do seu programa e identificar uma entrada de amostra que forneça a carga de trabalho desejada (por exemplo, intensivo de CPU na classificação 0). Por exemplo, mpiP é uma ferramenta de criação de perfil MPI que pode produzir um relatório muito completo sobre o padrão de comunicação, quanto tempo cada chamada MPI levou, etc.
Em seguida, você pode executar uma ferramenta de criação de perfil de código em uma ou mais classificações MPI selecionadas. De qualquer forma, usar perf
em uma única classificação MPI provavelmente não é uma boa ideia, pois suas medições também conterão o desempenho do código da biblioteca MPI, que provavelmente não é o que você está procurando.