我正在尝试将序列化的结构从一个等级发送到另一个等级。结果为
分段错误:11
我不知道它来自哪里。
我试图通过打印一些值来定位问题,并且代码总是在OrderedList xs
和MPI_Send
之间中断,但是由于它是分段错误,因此无法确定它是问题。请赐教。
MPI_Recv
答案 0 :(得分:1)
您的MPI派生数据类型描述了以下C struct
struct tests{
int number;
double fx[N];
};
但是您使用的是另一种
struct tests{
int number;
double *fx;
};
如果N
不是常量,则可以声明
struct tests{
int number;
double fx[];
};
由您自己来正确分配这样的struct
。
另一种选择是保持相同的struct
定义,并手动将MPI_Pack()
和MPI_Unpack()
的数据移入/移出临时缓冲区。