مشاركة عبر


MPI_Grequest_query_function دالة رد الاتصال

MPI_Grequest_query_function هو عنصر نائب لاسم الدالة المعرفة من قبل التطبيق.

بناء الجملة

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

المعلمات

  • extra_state [في، اختياري]
    حالة إضافية.

  • الحالة [خارج]
    كائن حالة MPI.

القيمة المُرجعة

ترجع جميع دالات رد الاتصال رمز خطأ. يتم تمرير التعليمات البرمجية مرة أخرى والتعامل معها حسب الاقتضاء لرمز الخطأ بواسطة الدالة MPI التي استدعت دالة رد الاتصال. على سبيل المثال، إذا تم إرجاع رموز الخطأ، فسيتم إرجاع رمز الخطأ الذي تم إرجاعه بواسطة دالة رد الاتصال بواسطة الدالة MPI التي استدعت دالة رد الاتصال. في حالة MPI_{Wait|Test}أي استدعاء يستدعي كل من query_fnfree_fn، سيعيد استدعاء MPI رمز الخطأ الذي تم إرجاعه بواسطة رد الاتصال الأخير، أي free_fn. إذا كان طلب واحد أو أكثر من الطلبات في مكالمة إلى MPI_{Wait|Test}{some|all} failed، ثم سيرجع استدعاء MPI MPI_ERR_IN_STATUS. في مثل هذه الحالة، إذا تم تمرير استدعاء MPI صفيف من الحالات، فسترجع MPI في كل حالة من الحالات التي تتوافق مع طلب معمم مكتمل رمز الخطأ الذي تم إرجاعه بواسطة الاستدعاء المقابل لدالة رد الاتصال free_fn الخاصة به. ومع ذلك، إذا تم تمرير الدالة MPI MPI_STATUSES_IGNORE، فسيتم فقدان رموز الخطأ الفردية التي يتم إرجاعها بواسطة كل دالة رد اتصال.

Fortran

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

الملاحظات

تحسب الدالة query_fn الحالة التي يجب إرجاعها للطلب المعمم. تتضمن الحالة أيضا معلومات حول الإلغاء الناجح/غير الناجح للطلب (النتيجة التي سيتم إرجاعها بواسطة MPI_Test_cancelled).

يتم استدعاء رد اتصال query_fn بواسطة MPI_{Wait|Test}{any|some|all} call that completeed the generalized request associated with this callback. يتم استدعاء دالة رد الاتصال أيضا بواسطة الاستدعاءات إلى MPI_Request_get_status، إذا اكتمل الطلب عند إجراء المكالمة. في كلتا الحالتين، يتم تمرير رد الاتصال مرجعا إلى متغير الحالة المقابل الذي تم تمريره من قبل المستخدم إلى استدعاء MPI؛ يتم إرجاع الحالة التي تم تعيينها بواسطة دالة رد الاتصال بواسطة استدعاء MPI. إذا قدم المستخدم MPI_STATUS_IGNORE أو MPI_STATUSES_IGNORE إلى دالة MPI التي تتسبب في استدعاء query_fn ، فستمرر MPI كائن حالة صالحا إلى query_fn، وسيتم تجاهل هذه الحالة عند إرجاع دالة رد الاتصال. لاحظ أنه لا يتم استدعاء query_fn إلا بعد استدعاء MPI_Grequest_complete على الطلب؛ قد يتم استدعاؤه عدة مرات لنفس الطلب المعمم، على سبيل المثال، إذا اتصل المستخدم MPI_Request_get_status عدة مرات لهذا الطلب. لاحظ أيضا أن استدعاء MPI_{Wait|Test}{some|all} قد يتسبب في استدعاءات متعددة لوظائف رد الاتصال query_fn، واحدة لكل طلب معمم يتم إكماله بواسطة استدعاء MPI. لم يتم تحديد ترتيب هذه استدعاءات بواسطة MPI.

المتطلبات

منتج

حزمة HPC Pack 2012 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 R2 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 MS-MPI القابلة لإعادة التوزيع أو الأدوات المساعدة للعميل HPC Pack 2008

الرأس

Mpi.h; Mpif.h

راجع أيضًا

الدالات الخارجية ل MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany