我不得不承認,看到需要多少行代碼才能將一個C結構與MPI進行傳輸,我感到非常震驚。MPI和C結構
在什麼情況下它可以使用預定義的數據類型MPI_CHAR
簡單地傳輸結構?考慮下面的例子:
struct particle {
double x;
double y;
long i;
};
struct particle p;
MPI_Isend(&p, sizeof(particle), MPI_CHAR, tag, MPI_COMM_WORLD, &sendr);
就我而言,所有的進程運行在同一個體系結構上。填補唯一的問題?
我想借此機會說出MPI是否不是一個嚴格的要求,請使用Google的協議緩衝區。 http://code.google.com/apis/protocolbuffers/ – Stephen 2010-05-02 16:53:39
你不應該擔心填充,sizeof報告正確的值包括填充 – Anycorn 2010-05-02 17:06:36
是的,但它可能會有所不同,這取決於架構... – hanno 2010-05-03 17:34:12