다음을 통해 공유


MSMPI_Waitsome_interruptible 함수

목록의 활성 핸들과 연결된 작업 중 하나 이상이 완료되거나 MSMPI_Queuelock_acquire 호출하는 다른 스레드에 의해 호출이 중단될 때까지 기다립니다.

구문

int MPIAPI MSMPI_Waitsome_interruptible(
        int                                         incount,
        _Inout_count_(incount) MPI_Request          array_of_requests[],
  _Out_ int                                         *outcount,
        _Out_cap_post_count_(incount,*outcount) int array_of_indices[],
        _Out_cap_post_count_(incount,*outcount) int array_of_statuses[]
);

매개 변수

  • incount
    배열의 요청 수 array_of_requests.

  • array_of_requests
    완료를 기다릴 작업의 요청 핸들 배열입니다. 차단 해제 통신 함수에서 요청 핸들을 할당한 경우 할당이 취소되고 연결된 핸들이 MPI_REQUEST_NULL 설정됩니다.

  • outcount [out]
    완료된 array_of_requests 매개 변수에 지정된 요청 수와 array_of_indices array_of_statuses 배열의 요소 수입니다.

    array_of_requests 활성 핸들이 없으면 함수는 outcount 매개 변수가 MPI_UNDEFINED 설정된 즉시 반환됩니다.

    요청이 완료되기 전에 이 함수가 중단되면 호출은 outcount 매개 변수가 0으로 설정된 상태에서 반환됩니다.

  • array_of_indices
    완료된 작업의 array_of_requests 매개 변수 내의 인덱스를 반환합니다. 배열 인덱스는 C에서 0부터 시작하며 Fortran에서는 1부터 시작합니다.

  • array_of_statuses
    완료된 작업의 상태 반환합니다. 이 배열의 요소는 array_of_indices 배열의 요소에 해당합니다.

반환 값

성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.

Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.

함수가 MPI_ERR_IN_STATUS 이외의 오류를 반환하는 경우 array_of_statuses매개 변수 에서 상태의 오류 필드를 업데이트하지 않습니다.

설명

다중 스레드 환경에서 사용자는 MSMPI_Waitsome_interruptible 호출하기 전에 MSMPI_Queuelock_acquire 함수를 사용하여 전역 Microsoft MPI 잠금 가져와야 합니다. 이 함수는 다른 스레드가 MPI 라이브러리에 액세스하기 위해 MSMPI_Queuelock_acquire 함수를 호출할 때 중단됩니다.

이 함수는 표준의 확장입니다.

요구 사항

제품

HPC 팩 2012 MS-MPI 재배포 가능 패키지, HPC 팩 2008 R2 MS-MPI 재배포 가능 패키지, HPC Pack 2008 MS-MPI 재배포 가능 패키지 또는 HPC 팩 2008 클라이언트 유틸리티

헤더

Mpi.h

라이브러리

Msmpi.lib

DLL

Msmpi.dll

추가 정보

MPI 지점 및 지점 함수

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome