الدالة MPI_Igatherv
جمع بيانات متغيرة من جميع أعضاء المجموعة إلى عضو واحد بطريقة غير محظورة.
بناء الجملة
int MPIAPI MPI_Igatherv(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_opt_ const int recvcounts[],
_In_opt_ const int displs[],
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
المعلمات
sendbuf [in, optional]
المقبض إلى مخزن مؤقت يحتوي على البيانات التي سيتم إرسالها إلى عملية الجذر.إذا كانت معلمة comm تشير إلى أداة داخلية، يمكنك تحديد خيار موضعي عن طريق تحديد MPI_IN_PLACE في جميع العمليات. يتم تجاهل معلمات sendcountوsendtype . تدخل كل عملية البيانات في عنصر مخزن الاستلام المؤقت المقابل. ترسل العملية nالبيانات إلى عنصر nth للمخزن المؤقت للاستلام. من المفترض أن تكون البيانات التي يتم إرسالها بواسطة العملية الجذر في المكان الصحيح في المخزن المؤقت للتلقي.
sendcount [in]
عدد العناصر في المخزن المؤقت الإرسال. إذا كان عدد الإرسال صفرا، يكون جزء البيانات من الرسالة فارغا.sendtype [in]
نوع البيانات لكل عنصر في المخزن المؤقت.recvbuf [خارج، اختياري]
المقبض إلى مخزن مؤقت على العملية الجذر التي تحتوي على البيانات التي يتم تلقيها من كل عملية، بما في ذلك البيانات التي يتم إرسالها بواسطة عملية الجذر. هذه المعلمة مهمة فقط في عملية الجذر. يتم تجاهل المعلمة recvbuf لجميع العمليات غير الجذرية.recvcounts[] [in, optional]
عدد العناصر التي يتم تلقيها من كل عملية. يتوافق كل عنصر في الصفيف مع مرتبة عملية الإرسال. إذا كان العدد صفرا، يكون جزء البيانات من الرسالة فارغا. هذه المعلمة مهمة فقط في عملية الجذر.displs[] [in, optional]
موقع البيانات من كل عملية اتصال، بالنسبة إلى معلمة recvbuf . يتم وضع البيانات المستلمة من العملية j في المخزن المؤقت لتلقي عناصر إزاحة عملية الجذر displs[j] من مؤشر sendbuf .في صفائف المعلمات recvbuf و recvcounts و displpls، يشير العنصر nمن كل صفيف إلى البيانات التي يتم تلقيها من عملية n th communicator.
هذه المعلمة مهمة فقط في عملية الجذر.
نوع مستطيل [in]
نوع البيانات لكل عنصر في المخزن المؤقت. هذه المعلمة مهمة فقط في عملية الجذر.الجذر [in]
رتبة عملية الاستلام داخل التواصل المحدد.comm [in]
مقبض MPI_Comm communicator.طلب [خارج]
مقبض MPI_Request الذي يمثل عملية الاتصال.
القيمة المُرجعة
إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.
في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .
Fortran
MPI_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR
الملاحظات
يبدأ الاستدعاء غير المحظور عملية تقليل جماعية يجب إكمالها في استدعاء إكمال منفصل. بمجرد البدء، قد تتقدم العملية بشكل مستقل عن أي حساب أو اتصال آخر في العمليات المشاركة. بهذه الطريقة، يمكن لعمليات التخفيض غير المحظورة التخفيف من تأثيرات المزامنة المحتملة لعمليات التخفيض عن طريق تشغيلها في "الخلفية".
يتم دعم جميع استدعاءات الإكمال (على سبيل المثال، MPI_Wait) لعمليات تقليل عدم الحظر.
المتطلبات
منتج |
Microsoft MPI v7 |
الرأس |
Mpi.h; Mpif.h |
المكتبة |
Msmpi.lib |
Dll |
Msmpi.dll |