1
두 개의 일치하는 비 차단 send 및 recv 작업에서 하나의 요청 개체 만 검사하는 것으로 충분합니다.recv와 send가 일치하면 mpi 요청이 완료됩니까
이렇게하면 내 프로그램에서 요청 개체를 처리하는 노력이 줄어들 수 있습니다. 여기
부스트 MPI와 작은 예 :
#include <boost/mpi.hpp>
int main(int argc, char* argv[]) {
// initialize mpi
mpi::environment env(argc, argv);
boost::mpi::communicator world;
boost::mpi::request req0, req1;
double blub;
if(world.rank()==1)
req1 = world.irecv(0, 23, blub);
if(world.rank()==0)
req0 = world.isend(0, 23, blub);
//now I want to synchronize the processors is this enough?
req0.wait();
//or do I also need this line
req1.wait();
}
어떤 프로세스에서 어떤 명령문이 실행되는지 실제로 생각해야합니다. MPI 신참자들이이 정신 분열증 적 행동을 파악하기는 좀 어렵지만 시간이 지나면 익숙해 질 것입니다. 그런데'I' 연산의 결과에 신경 쓰지 않는다면,'MPI_Request_free()'로 요청 핸들을 해제 할 수 있습니다 (미안하지만, MPI에 상응하는 것이 무엇인지 모릅니다). MPI 라이브러리가 완료되면 자동으로 삭제됩니다. –