-2
我想詢問有關回答以下問題最好的情況
對於通過使每個進程發送一個 值執行通信此MPI程序段,正,以環形模式轉到其旁邊的過程。也就是說,如果有N個進程,則進程0 將發送值爲1,進程1將發送到2,依此類推。最後一個進程將其值 發送到0.這些消息將全部並行發生。
if (my_rank%2 == 0) { MPI_SEND(msg,size,MPI_INT,(my_rank+1)%comm_sz,0,comm);
MPI_RECV(new_msg,size,MPI_INT,(my_rank+comm_sz-1)%comm_sz,0,comm,MPI_STATUS_IGNORE); }
else {
MPI_RECV(new_msg,size,MPI_INT,(my_rank+comm_sz-1)%comm_sz,0,comm,MPI_STATUS_IGNORE);
MPI_SEND(msg,size,MPI_INT,(my_rank+1)%comm_sz,0,comm); }
假設發送消息的時間是一個時間單元,時間以接收 消息是一個時間單元。只包括消息傳遞的費用(忽略任何啓動 費用等),並在最佳情況下計算完成代碼 需要多少時間單位。你應該陳述你明確提出的任何假設。
我認爲它會是4,在最好的情況下,如果所有的偶數同時發送n和所有在這裏同時收到的可能性是2並且奇數發送相同,那麼另一個2所以它會是4但我不知道我是否正確
謝謝我會照顧那個,但是對於這個問題和這個代碼,因爲他們是給予的是我想到的時間成本是否正確? 再次感謝。 –