【发布时间】:2018-02-26 04:02:54
【问题描述】:
我正在做一个项目,我像这样使用本征数组创建了一个类
class Cartesian{
public:
double x() const { return r_(0); }
double y() const { return r_(1); }
double z() const { return r_(2); }
private:
Eigen::Array3d r_;
}
Eigen::Array<Cartesian, Eigen::Dynamic, 1> Cart_Array(10);
所以现在我想使用 MPI_Send 将 Cart_Array 从 Proc 0 发送到 Proc 1。最好的方法是什么?我想创建一个派生的 MPI 数据类型;例如,Cart_Type,然后将其发送为
MPI_Send(&Cart_Array, 10, Cart_Type, 1, TAG, MPI_COMM_WORLD).
我知道如何使用 MPI_Type_create_struct 等为简单的事物创建 MPI 派生类型。但是对于我展示的案例,我不知道如何去做。请让我看看。如果可能的话,我想避免使用其他库,例如 Boost。
编辑:
我问这个问题是因为我想避免使用序列化方法。那是因为这是一个强调效率的大型计划的一部分。
【问题讨论】: