我正在使用一個C++代碼,它使用mpi在HPC上執行並行計算。我想知道如何在我的代碼中實現以衡量網絡延遲? (我想知道延遲是否是我的模擬中的一個大問題。)如何測量並行C++程序中的網絡延遲?
cpu的utime或stime是否包含此延遲?
PS:我的集羣正在使用Linux,由SGE管理。
我正在使用一個C++代碼,它使用mpi在HPC上執行並行計算。我想知道如何在我的代碼中實現以衡量網絡延遲? (我想知道延遲是否是我的模擬中的一個大問題。)如何測量並行C++程序中的網絡延遲?
cpu的utime或stime是否包含此延遲?
PS:我的集羣正在使用Linux,由SGE管理。
你應該看看VampirTrace
它可以讓你追蹤的延遲以及MPI的thoughput調用以及許多其他指標。由於它是商業許可證,您需要獲得許可證。我建議你問你的集羣管理員你的機構是否有許可證(對大學和類似的情況通常是這樣)。
如果你只是想測量你的等待時間,發送一個0長度的消息需要多長時間,或發送多少和平均它。還有幾個基準。我爲英特爾工作,支持我們的一些軟件開發產品。其中之一就是英特爾®MPI基準測試,這是一套可用於任何MPI實施的開放源代碼MPI基準測試。如果你想嘗試一下,你可以在https://software.intel.com/en-us/articles/intel-mpi-benchmarks/下載它。