مشاركة عبر


الدالة MPI_Iscatter

تشتت البيانات من عضو واحد عبر جميع أعضاء المجموعة بطريقة غير محظورة. تقوم هذه الدالة بتنفيذ عكس العملية التي يتم تنفيذها بواسطة الدالة MPI_Igather.

بناء الجملة

int MPIAPI MPI_Iscatter(
  _In_opt_  const void         *sendbuf,
  _In_             int         sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_            int          recvcount,
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

المعلمات

  • sendbuf [in, optional]
    المؤشر إلى مخزن مؤقت يحتوي على البيانات التي سيتم إرسالها إلى عملية الجذر.

    يتم تجاهل هذه المعلمة لجميع العمليات غير الجذر.

    إذا كانت معلمة comm تشير إلى أداة داخلية، يمكنك تحديد خيار موضعي عن طريق تحديد MPI_IN_PLACE في عملية الجذر. يتم تجاهل معلمات recvcount و recvtype . لا يزال المتجه المبعثر يعتبر أنه يحتوي على مقاطع n ، حيث n هو حجم المجموعة؛ لا يتم نقل المقطع الذي يتوافق مع عملية الجذر.

  • sendcount [in]
    عدد العناصر في المخزن المؤقت الإرسال. إذا كان عدد الإرسال صفرا، يكون جزء البيانات من الرسالة فارغا.

    يتم تجاهل هذه المعلمة لجميع العمليات غير الجذر.

  • sendtype [in]
    نوع البيانات لكل عنصر في المخزن المؤقت.

    يتم تجاهل هذه المعلمة لجميع العمليات غير الجذر.

  • recvbuf [خارج، اختياري]
    المقبض إلى مخزن مؤقت يحتوي على البيانات التي يتم تلقيها في كل عملية. يتم تحديد رقم ونوع البيانات للعناصر في المخزن المؤقت في معلمات recvcount و recvtype .

  • recvcount [in]
    عدد العناصر في المخزن المؤقت للاستلام. إذا كان العدد صفرا، يكون جزء البيانات من الرسالة فارغا.

  • نوع مستطيل [in]
    نوع بيانات MPI للعناصر في المخزن المؤقت للاستلام.

  • الجذر [in]
    رتبة عملية الاستلام داخل التواصل المحدد.

  • comm [in]
    مقبض MPI_Comm communicator.

  • طلب [خارج]
    مقبض MPI_Request الذي يمثل عملية الاتصال.

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

إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.

في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .

Fortran

    MPI_ISCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

الملاحظات

يبدأ الاستدعاء غير المحظور عملية تقليل جماعية يجب إكمالها في استدعاء إكمال منفصل. بمجرد البدء، قد تتقدم العملية بشكل مستقل عن أي حساب أو اتصال آخر في العمليات المشاركة. بهذه الطريقة، يمكن لعمليات التخفيض غير المحظورة التخفيف من تأثيرات المزامنة المحتملة لعمليات التخفيض عن طريق تشغيلها في "الخلفية".

يتم دعم جميع استدعاءات الإكمال (على سبيل المثال، MPI_Wait) لعمليات تقليل عدم الحظر.

المتطلبات

منتج

Microsoft MPI v7

الرأس

Mpi.h; Mpif.h

المكتبة

Msmpi.lib

Dll

Msmpi.dll

راجع أيضًا

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

MPI_Datatype

MPI_Scatter

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome