내 소프트웨어를 MPI로 실행하려면 MPI::COMM_WORLD
을 반환하는 간단한 메서드를 만들어야합니다. 내 수업 시간에 따라서MPI :: Comm 형식의 개체를 반환하는 함수를 컴파일 할 수 없습니다.
, 우리는이 : 그것은 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()
메소드를 구현해야합니까? 내가 위를 컴파일 할 때, 나는 다음과 같은 오류가 발생합니다 :
invalid abstract return type for member function 'MPI::Comm Parallel ::getCommunicator()
을 제공합니다 :
이 상황을 처리하는 고전적인 방법은 upcasting와 컴파일러 거래를하지 않고 개체 자체보다, 객체에 대한 참조를 반환하고 수 있도록하는 것입니다 * C++ 바인딩은 MPI-2.2 (2009)부터 사용되지 않습니다. C++ 바인딩은 MPI-3.0에서 제거되었습니다. (2012) *. 어쨌든 나는 실제로 당신이 무엇을 요구하고 있는지 전혀 모른다. 당신은 무엇을하려고하고 정확히 어디에 문제가 있습니까? – Zulan
기본적으로 HDF5 API를 사용하여 파일의 병렬 데이터를 작성하고 있습니다. – Karl
내 코드에는 HDF5 API에서 제공하는 함수를 사용해야합니다. – Karl