사용자 정의 요청을 만들고 반환합니다.
구문
int MPIAPI MPI_Grequest_start(
_In_ MPI_Grequest_query_function *query_fn,
_In_ MPI_Grequest_free_function *free_fn,
_In_ MPI_Grequest_cancel_function *cancel_fn,
_In_opt_ void *extra_state,
_Out_ MPI_Request *request
);
매개 변수
query_fn [in]
요청 상태 쿼리할 때 호출되는 콜백 함수입니다.free_fn [in]
요청이 해제될 때 호출되는 콜백 함수입니다.cancel_fn [in]
요청이 취소될 때 호출되는 콜백 함수입니다.extra_state [in, optional]
위의 함수에 전달된 추가 상태입니다.request [out]
일반화된 요청입니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
INTEGER REQUEST, IERROR
EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE
설명
콜백 함수의 반환 값은 유효한 MPI 오류 코드 또는 클래스여야 합니다. 이 값은 MPI 루틴의 반환 값(아래에 언급된 한 가지 예외 포함) 또는 MPI 오류 클래스 중 하나일 수 있습니다. 이식 가능한 프로그램의 경우 MPI_ERR_OTHER 사용할 수 있습니다. 보다 구체적인 정보를 제공하려면 MPI_Add_error_class 또는 MPI_Add_error_code 사용하여 새 MPI 오류 클래스 또는 코드를 만들고 해당 값을 반환합니다.
MPI 표준은 콜백 루틴의 반환 값에 대해 명확하지 않습니다. 그러나 표준에는 MPI 오류 코드임을 암시하는 메모가 있습니다. 예를 들어 페이지 169 줄 46~ 페이지 170, 줄 1은 free_fn MPI_ERR_IN_STATUS반환할 때 MPI 완료 함수에서 사용할 수 있는 MPI 오류 코드를 반환해야 합니다.
한 가지 특별한 경우는 특성 콜백 루틴이 오류를 반환할 때 MPI_Comm_dup 반환하는 오류 값입니다. MPI 표준은 오류 반환을 나타내는 데 사용할 수 있는 값에 대해 명확하지 않습니다. 또한 Intel MPI 테스트 도구 모음은 0이 아닌 값을 사용하여 실패를 나타내고 특성 루틴에 오류가 발생할 때 이러한 값이 MPI_Comm_dup 반환될 것으로 예상했습니다. 이러한 오류 값은 유효한 MPI 오류 코드 또는 클래스가 아닐 수 있습니다. 이 때문에 특성 콜백의 대가로 유효한 MPI 오류 코드를 사용하거나, 일반화된 요청 콜백에서 해당 오류 코드를 반환하거나, 해당 오류 코드를 검색하여 유효한 MPI 오류 코드로 변환해야 합니다(MPI 오류 클래스는 유효한 오류 코드임).
요구 사항
제품 |
HPC 팩 2012 MS-MPI 재배포 가능 패키지, HPC 팩 2008 R2 MS-MPI 재배포 가능 패키지, HPC Pack 2008 MS-MPI 재배포 가능 패키지 또는 HPC 팩 2008 클라이언트 유틸리티 |
헤더 |
Mpi.h; Mpif.h |
라이브러리 |
Msmpi.lib |
DLL |
Msmpi.dll |