공부
병렬프로그래밍 - 논블록킹
myeongjaechoi
2024. 5. 13. 09:49
- buf : 송신 버퍼의 시작 주소
- count : 송신 버퍼에서 송신될 element 수(정수)
- datatype : 송신 버퍼 내의 각 element의 데이터 타입(MPI_Datatype)
- dest : 수신 프로세스의 rank(정수)
- tag : 메시지 식별 번호(정수)
- 보내는 사람과 받는 사람의 tag는 일치해야 됨
- 사용자가 임의의 정수로 사용
- comm : 커뮤니케이터
- request : 호출된 논블록킹 통신 함수를 식별하기 위해 사용되는 핸들
반환값
- 함수 호출 성공 : MPI 에러 코드(정수 상수)인 MPI_SUCCESS 반환
- 함수 호출 실패 : MPI_ERR_로 시작되는 MPI 에러 코드 반환
- buf : 수신 버퍼의 시작 주소
- count : 수신 버퍼에서 송신될 element 수(정수)
- datatype : 수신 버퍼 내의 각 element의 데이터 타입(MPI_Datatype)
- source : 송신 프로세스의 rank(정수)
- tag : 메시지 식별 번호(정수)
- 보내는 사람과 받는 사람의 tag는 일치해야 됨
- 사용자가 임의의 정수로 사용
- comm : 커뮤니케이터
- request : 호출된 논블록킹 통신 함수를 식별하기 위해 사용되는 핸들
반환값
- 함수 호출 성공 : MPI 에러 코드(정수 상수)인 MPI_SUCCESS 반환
- 함수 호출 실패 : MPI_ERR_로 시작되는 MPI 에러 코드 반환
통신 완료 확인
- MPI_Wait 함수 - int MPI_Wait(MPI_Request * request, MPI_Status * status)
- request : 호출된 논블록킹 통신 함수를 식별하기 위해 사용되는 핸들 (MPI_Request)
- status :MPI_Irecv 함수에 의해 수신된 메시지의 정보 및 MPI_Isend 함수에 대한 에러코드(MPI_Status)
- 통신이 완료될 때까지 기다림
- MPI_Test 함수 - int MPI_Test(MPI_Request * request, int *flag, MPI_Status * status)
- request : 호출된 논블록킹 통신 함수를 식별하기 위해 사용되는 핸들 (MPI_Request)
- flag : 통신이 완료되면 참(0이 아닌 정수), 아니면 거짓(0)을 리턴(logical)
- status :MPI_Irecv 함수에 의해 수신된 메시지의 정보 및 MPI_Isend 함수에 대한 에러코드(MPI_Status)
- 통신이 성공적으로 수행되었는지 확인
- 일반적으로 MPI_Wait 함수를 더 많이 사용함