我使用OpenMPI和OpenMP(共享內存)來並行化一段代碼。我正在嘗試爲基準測試和加速目的計算代碼,但我不明白omp_get_wtime()和mpi_wtime()之間的差異。當同時使用MPI和共享內存時,omp_get_wtime()和mpi_wtime()之間的區別
這裏是我的代碼不會隨着架構在運行上的輪廓:
我有8個節點,每個有16個處理器。我有128個任務要運行。
我正在測試兩種情況,我想知道哪種情況更快。
第一種場景: 我給每個節點1/8的任務(使用OpenMPI),並且對於每個任務,節點使用其16個處理器(使用OpenMP)來完成任務。所以Node0會做Task0,當Task0完成時它會做Task8,當Task8完成時它會做Task16;同時節點1將執行任務1,然後任務9,然後任務15等,直到每個任務完成。我想知道整個過程需要多長時間,並且知道每個任務需要多長時間才能完成(平均而言)會很高興。
第二個場景:我將128個任務中的每個任務放在單個處理器上(使用MPI)。我只想知道這需要多長時間才能運行,並且再次瞭解每個處理器完成其工作需要多長時間會很高興。
基本上我在這裏做的是比較MPI + OpenMP與使用MPI進行比較的方式。
我應該使用哪個計時器,兩者之間有什麼區別?
謝謝!