【发布时间】:2016-07-15 09:40:14
【问题描述】:
要使用 MPI 运行我的软件,我需要创建一个返回 MPI::COMM_WORLD 的简单方法。
所以在我的课堂上,我们有:
#include <mpi.h>
class Parallel{
public:
MPI::Comm getCommunicator(){
return MPI::COMM_WORLD;
}
protected:
int iproc;
};
int main(int argc, char *argv[]){
Parallel* parallel;
MPI::Init(argc, argv);
int my_rank;
my_rank = parallel->getCommunicator().Get_rank();
MPI::Finalize();
return 0;
}
我应该如何实现getCommunicator() 方法才能返回MPI::COMM_WORLD?当我尝试编译上述内容时,出现以下错误:
invalid abstract return type for member function 'MPI::Comm Parallel ::getCommunicator()
【问题讨论】:
-
自 MPI-2.2 (2009) 起,C++ 绑定已被弃用。 MPI-3.0 中删除了 C++ 绑定。 (2012 年)。无论如何,我不知道您实际上在问什么。你想做什么,你的问题到底出在哪里?
-
基本上,我正在使用 HDF5 API 在文件中写入并行数据。
-
在我的代码中,我必须使用包含 HDF5 API 提供的函数:
-
这个函数是:H5Pset_fapl_mpio(plist_id,MPI_COMM_WORLD, MPI_INFO_NULL);在我写代码的软件中,不能直接调用MPI_COMM_WORLD,因为封装了mpi函数。
-
所以,我想在一个返回通信器的类中编写一个方法,特别是 MPI_Comm_WORLD。所以,我在上面写了一个简单的代码来测试我的方法是否有效:最后,当我编译代码时出现错误消息
标签: c++ mpi communicator