我有MPI/OpenMP混合代碼。我想知道每個MPI過程花費的特定功能的時間,比如說A。這個函數在OpenMP do/for循環中被其它函數以非常複雜的方式調用(也就是說一些其他函數可以說B和C可能調用A,這也可能在OpenMP do/for循環中) 。我正打算這樣做如下:MPI/OpenMP混合代碼中的計時單功能
double A()
{
time1 = MPI_Wtime();
//compute result...
//Note: inside this function there is no OpenMP or MPI calls...
// just pure computation of results...
time2 = MPI_Wtime();
printf("myRank=%d timeSpent=%f\n", myRank, (time2-time1));
return result;
}
會的每每一個MPI過程中的所有時間的總和是由MPI過程花了這個功能的總時間?如果不是,請你能告訴我如何正確地得到它,謝謝!
你正在做它的每一個主題的方式/ MPI進程將有自己的時間1和時間2 – pyCthon
@pyCthon你可以提出一個方法只有每MPI進程得到?謝謝!!! – tiki
@torem,VampirTrace處於完全插裝模式(默認模式)將跟蹤代碼中每個函數的執行情況(或者您可以編寫一個過濾器將其限制爲僅限於「A()」)跨MPI作業中的所有進程然後可以使用Vampir(商業)或Scalasca(開源)來分析OTF蹤跡。 –