我正在研究C上的MPI。我有这个自定义结构,我希望使用MPI Collective communication(Gather,Scatter,Broadcast)序列化并发送到其他节点
结构如下
typedef struct {
double x[2]; /* Old and new X-axis coordinates */
double y[2]; /* Old and new Y-axis coordinates */
double xf; /* force along X-axis */
double yf; /* force along Y-axis */
double xv; /* velocity along X-axis */
double yv; /* velocity along Y-axis */
double mass; /* Mass of the body */
double radius; /* width (derived from mass) */
} bodyType;
我试图了解MPI上自定义结构的序列化,但无法真正理解该过程。如果有人能在这里帮助我,那就太棒了
谢谢
答案 0 :(得分:0)
你的结构只是十个连续的双打。因此,您无需通知MPI您的类型,因为它可以被视为一个数组。如果你有七个结构的数组,只需告诉MPI你有一个70个双打的数组。你应该告诉你的编译器“打包”你的结构(例如GCC或Clang中的__attribute__((__packed__))
),这样它就没有填充。
答案 1 :(得分:0)
好的,所以我能够浏览文件并写下这个
m>5