Bagikan melalui


MPI_Grequest_query_function fungsi panggilan balik

MPI_Grequest_query_function adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.

Sintaks

int MPI_Grequest_query_function(
  _In_opt_ void       *extra_state,
  _Out_    MPI_Status *status
);

Parameter

  • extra_state [in, opsional]
    Keadaan ekstra.

  • status [out]
    Objek status MPI.

Nilai kembali

Semua fungsi panggilan balik mengembalikan kode kesalahan. Kode diteruskan kembali dan ditangani sesuai untuk kode kesalahan oleh fungsi MPI yang memanggil fungsi panggilan balik. Misalnya, jika kode kesalahan dikembalikan, kode kesalahan yang dikembalikan oleh fungsi panggilan balik akan dikembalikan oleh fungsi MPI yang memanggil fungsi panggilan balik. Dalam kasus MPI_{Wait|Uji}setiap panggilan yang memanggil query_fn dan free_fn, panggilan MPI akan mengembalikan kode kesalahan yang dikembalikan oleh panggilan balik terakhir, yaitu free_fn. Jika satu atau beberapa permintaan dalam panggilan ke MPI_{Wait|Uji}{beberapa|semua} gagal, maka panggilan MPI akan mengembalikan MPI_ERR_IN_STATUS. Dalam kasus seperti itu, jika panggilan MPI dilewatkan array status, maka MPI akan kembali di setiap status yang sesuai dengan permintaan umum yang selesai, kode kesalahan yang dikembalikan oleh pemanggilan yang sesuai dari fungsi panggilan balik free_fn . Namun, jika fungsi MPI diteruskan MPI_STATUSES_IGNORE, maka kode kesalahan individual yang dikembalikan oleh setiap fungsi panggilan balik akan hilang.

Fortran

    SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Keterangan

Fungsi query_fn menghitung status yang harus dikembalikan untuk permintaan umum. Status ini juga mencakup informasi tentang pembatalan permintaan yang berhasil/tidak berhasil (hasilnya dikembalikan oleh MPI_Test_cancelled).

Panggilan balik query_fn dipanggil oleh MPI_{Wait|Uji}{any|beberapa|semua} panggilan yang menyelesaikan permintaan umum yang terkait dengan panggilan balik ini. Fungsi panggilan balik juga dipanggil oleh panggilan ke MPI_Request_get_status, jika permintaan selesai ketika panggilan terjadi. Dalam kedua kasus, panggilan balik diteruskan referensi ke variabel status yang sesuai yang diteruskan oleh pengguna ke panggilan MPI; status yang ditetapkan oleh fungsi panggilan balik dikembalikan oleh panggilan MPI. Jika pengguna memberikan MPI_STATUS_IGNORE atau MPI_STATUSES_IGNORE ke fungsi MPI yang menyebabkan query_fn dipanggil, maka MPI akan meneruskan objek status yang valid ke query_fn, dan status ini akan diabaikan setelah kembalinya fungsi panggilan balik. Perhatikan bahwa query_fn dipanggil hanya setelah MPI_Grequest_complete dipanggil berdasarkan permintaan; ini dapat dipanggil beberapa kali untuk permintaan umum yang sama, misalnya, jika pengguna memanggil MPI_Request_get_status beberapa kali untuk permintaan ini. Perhatikan juga bahwa panggilan ke MPI_{Wait|Uji}{beberapa|all} dapat menyebabkan beberapa pemanggilan fungsi panggilan balik query_fn , satu untuk setiap permintaan umum yang diselesaikan oleh panggilan MPI. Urutan pemanggilan ini tidak ditentukan oleh MPI.

Persyaratan

Produk

Paket HPC Pack 2012 MS-MPI Redistributable, HpC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package atau HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Lihat juga

Fungsi Eksternal MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany