我有兩個代碼塊,其消耗的每個, 2秒在它們按順序運行的經典結構,在4秒MPI並行時間消耗
在MPI格式,它應該消耗2秒但它需要5秒
爲什麼?
int main (int argc, char *argv[])
{
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&p);
MPI_Comm_rank(MPI_COMM_WORLD,&id);
if(id==0)
{
// 2 seconds Block
}
if(id==1)
{
// 2 seconds Block
}
MPI_Finalize();
}
你測量了不同的塊嗎?你是否也測量了MPI的初始化和最終化? MPI不是無價的,特別是初始化需要「一些」時間,這對每臺機器和每個MPI實現都不相同。 – PVitt 2014-11-06 10:16:34
歡迎使用Stack Overflow;請提供一個[很好的例子](http://stackoverflow.com/help/mcve)。這個問題中沒有足夠的信息可以幫助我們。例如,如果你用'sleep(2)'作爲塊運行你的程序,你會發現程序的運行時間只有幾十毫秒,比2s長。 – 2014-11-06 19:25:28