Freigeben über


MPI_Grequest_start-Funktion

Erstellt und gibt eine benutzerdefinierte Anforderung zurück.

Syntax

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

Parameter

  • query_fn [in]
    Rückruffunktion wird aufgerufen, wenn anforderungsbasierte status abgefragt wird.

  • free_fn [in]
    Rückruffunktion wird aufgerufen, wenn die Anforderung freigegeben wird.

  • cancel_fn [in]
    Rückruffunktion wird aufgerufen, wenn die Anforderung abgebrochen wird.

  • extra_state [in, optional]
    Zusätzlicher Zustand, der an die oben genannten Funktionen übergeben wird.

  • Request [out]
    Generalisierte Anforderung.

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

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

Hinweise

Die Rückgabewerte der Rückruffunktionen müssen ein gültiger MPI-Fehlercode oder eine gültige Klasse sein. Bei diesem Wert kann es sich entweder um den Rückgabewert einer beliebigen MPI-Routine (mit einer unten aufgeführten Ausnahme) oder einer der MPI-Fehlerklassen handeln. Für tragbare Programme können MPI_ERR_OTHER verwendet werden; Um spezifischere Informationen bereitzustellen, erstellen Sie eine neue MPI-Fehlerklasse oder einen neuen Mpi-Code mit MPI_Add_error_class oder MPI_Add_error_code , und geben Sie diesen Wert zurück.

Der MPI-Standard ist für die Rückgabewerte aus den Rückrufroutinen nicht eindeutig. Es gibt jedoch Hinweise im Standard, die darauf hindeuten, dass es sich um MPI-Fehlercodes handelt. Beispielsweise erfordern die Seiten 169 Zeile 46 bis Seite 170, Zeile 1, dass die free_fn einen MPI-Fehlercode zurückgeben, der in den MPI-Vervollständigungsfunktionen verwendet werden kann, wenn sie MPI_ERR_IN_STATUS zurückgeben.

Der einzige Sonderfall ist der Fehlerwert, der von MPI_Comm_dup zurückgegeben wird, wenn die Attributrückrufroutine einen Fehler zurückgibt. Der MPI-Standard ist nicht klar, welche Werte verwendet werden können, um eine Fehlerrückgabe anzuzeigen. Darüber hinaus verwendete die Intel MPI-Testsammlung Werte ungleich Null, um einen Fehler anzuzeigen, und erwartete, dass diese Werte vom MPI_Comm_dup zurückgegeben werden, wenn bei den Attributroutinen ein Fehler aufgetreten ist. Solche Fehlerwerte sind möglicherweise keine gültigen MPI-Fehlercodes oder -klassen. Aus diesem Grund liegt es in der Verantwortung des Benutzers, entweder gültige MPI-Fehlercodes als Gegenleistung für die Attributrückrufe zu verwenden, wenn diese Fehlercodes von einem generalisierten Anforderungsrückruf zurückgegeben werden sollen, oder diese Fehlercodes zu erkennen und in gültige MPI-Fehlercodes zu konvertieren (denken Sie daran, dass MPI-Fehlerklassen gültige Fehlercodes sind).

Anforderungen

Produkt

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package oder HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

Externe MPI-Funktionen

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function