Udostępnij za pośrednictwem


MSMPI_Waitsome_interruptible, funkcja

Czeka, aż co najmniej jedna z operacji skojarzonych z aktywnymi dojściami na liście została zakończona lub wywołanie zostanie przerwane przez inny wątek, który wywołuje MSMPI_Queuelock_acquire.

Składnia

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[]
);

Parametry

  • incount
    Liczba żądań w tablicy array_of_requests.

  • array_of_requests
    Tablica dojść żądań operacji, na których należy poczekać na ukończenie. Jeśli dojście żądania zostało przydzielone przez funkcję komunikacji nieblokającej, zostanie cofnięto przydział, a skojarzony uchwyt zostanie ustawiony na MPI_REQUEST_NULL.

  • outcount [out]
    Liczba żądań określonych w parametrze array_of_requests , które są ukończone, oraz liczba elementów w tablicach array_of_indices i array_of_statuses .

    Jeśli array_of_requests nie zawiera aktywnych dojść, funkcja zwraca natychmiast z parametrem outcount ustawionym na MPI_UNDEFINED.

    Jeśli ta funkcja zostanie przerwana przed ukończeniem żądań, wywołanie zostanie zwrócone z parametrem outcount ustawionym na zero.

  • array_of_indices
    Zwraca indeksy w parametrze array_of_requests operacji, które zostały ukończone. Indeksy tablicowe są oparte na zera w języku C i z jednej siedziby w Fortran.

  • array_of_statuses
    Zwraca stan zakończonych operacji. Elementy tej tablicy odpowiadają elementom tablicy array_of_indices .

Wartość zwracana

Zwraca MPI_SUCCESS powodzenia. W przeciwnym razie wartość zwracana jest kodem błędu.

W fortran wartość zwracana jest przechowywana w parametrze IERROR .

Jeśli funkcja zwraca błąd inny niż MPI_ERR_IN_STATUS, nie aktualizuje pól błędów stanów w parametrze array_of_statuses .

Uwagi

W środowisku wielowątkowa użytkownicy muszą uzyskać globalną blokadę MPI firmy Microsoft przy użyciu funkcji MSMPI_Queuelock_acquire , zanim wywołają MSMPI_Waitsome_interruptible. Ta funkcja jest przerywana, gdy inny wątek wywołuje funkcję MSMPI_Queuelock_acquire w celu uzyskania dostępu do biblioteki MPI.

Ta funkcja jest rozszerzeniem standardu.

Wymagania

Produkt

Pakiet redystrybucyjny PROGRAMU HPC Pack 2012 MS-MPI, pakiet redystrybucyjny HPC Pack 2008 R2 MS-MPI, pakiet redystrybucyjny PAKIETU HPC Pack 2008 MS-MPI lub narzędzia klienckie PAKIETU HPC Pack 2008

Nagłówek

Mpi.h

Biblioteka

Msmpi.lib

DLL

Msmpi.dll

Zobacz też

Funkcje typu punkt-punkt MPI

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome