我是 MPI 的新手,對不同節點的 CPU 之間的資料通信有點困惑。當它們位于不同節點時,cpus如何在它們之間進行資料通信?
例如,我想將資料從一次發送和接收到其他:
MPI_Send(
void* data, // This is a pointer that cpu-1 in Node-1 want to sent to cpu-2 in node-2,
int count,
MPI_Datatype datatype,
int destination,
int tag,
MPI_Comm communicator)
MPI_Recv(
void* data, // I receive the pointer from Node-1, but this pointer corresponds to different memory in Node-2. How does this work?
int count,
MPI_Datatype datatype,
int source,
int tag,
MPI_Comm communicator,
MPI_Status* status)
uj5u.com熱心網友回復:
MPI 是在 1990 年代初撰寫的,當時還沒有內核的概念。所以行程總是在不同的節點上。MPI 例程的第一個實作可能使用 Unix 套接字通過以太網電纜發送資料。當前的實作使用系統提供的任何網路庫,可以通過 Infiniband 或以太網或那里的任何網路庫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/507329.html
