مشاركة عبر


الدالة 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

راجع أيضًا

الدالات الجماعية ل MPI

MPI_Datatype

MPI_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome