إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تشتت البيانات من عضو واحد عبر جميع أعضاء المجموعة. تؤدي الدالة MPI_Scatter عكس العملية التي يتم تنفيذها بواسطة الدالة MPI_Gather .
بناء الجملة
int MPIAPI MPI_Scatter(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
MPI_Datatype recvtype,
int root,
MPI_Comm comm
);
المعلمات
sendbuf [in]
المقبض إلى مخزن مؤقت يحتوي على البيانات التي سيتم إرسالها بواسطة عملية الجذر.يتم تجاهل معلمة sendbuf لجميع العمليات غير الجذرية.
إذا كانت معلمة comm تشير إلى intracommunicator، يمكنك تحديد خيار في المكان عن طريق تحديد MPI_IN_PLACE في عملية الجذر. يتم تجاهل معلمات recvcount و recvtype . لا يزال المتجه المبعثر يعتبر أنه يحتوي على مقاطع n ، حيث n هو حجم المجموعة؛ لا يتم نقل المقطع الذي يتوافق مع عملية الجذر.
عدد الإرسال
عدد العناصر في المخزن المؤقت إرسال. إذا كان عدد الإرسال صفرا، يكون جزء البيانات من الرسالة فارغا.يتم تجاهل معلمة sendcount لجميع العمليات غير الجذر.
نوع الإرسال
نوع البيانات لكل عنصر في المخزن المؤقت.يتم تجاهل معلمة sendcount لجميع العمليات غير الجذر.
recvbuf [out]
المقبض إلى مخزن مؤقت يحتوي على البيانات التي يتم تلقيها في كل عملية. يتم تحديد عدد ونوع البيانات للعناصر في المخزن المؤقت في معلمات recvcount و recvtype .إعادة الفرز
عدد العناصر في المخزن المؤقت للاستلام. إذا كان العدد صفرا، فإن جزء البيانات من الرسالة فارغ.نوع المستطيل
نوع بيانات العناصر في المخزن المؤقت للاستلام.جذر
مرتبة عملية الإرسال داخل communicator المحدد.الاتصالات
مقبض MPI_Comm communicator.
القيمة المُرجعة
إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.
في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .
Fortran
MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR
الملاحظات
تأثير الدالة MPI_Scatter كما لو أن عملية الجذر ترسل رسالة باستخدام الدالة MPI_Send . يتم تقسيم هذه الرسالة إلى n مقاطع متساوية، واحدة لكل عضو في المجموعة. يتم إرسال الجزء ith إلى عملية ith في المجموعة.
إذا كان comm هو intracommunicator، فإن النتيجة كما لو أن الجذر نفذ عمليات MPI_Send(sendbuf + i*sendcount*extent(sendtype), sendcount, sendtype, I, …)إرسال n ؛ ونفذ كل عملية تلقيا، MPI_Recv(recvbuf, recvcount, recvtype, i,…).
يجب أن يكون توقيع النوع المحدد بواسطة معلمات sendcountوsendtype لعملية الجذر مساويا لتوقيع النوع المحدد بواسطة recvcount ومعلمات recvtype لجميع العمليات. لذلك، يجب أن تكون كمية البيانات المرسلة مساوية لكمية البيانات التي يتم تلقيها بين أي زوج من العمليات. لا يزال يسمح بخرائط النوع المميزة بين المرسل والمتلقي.
جميع معلمات الدالة مهمة في عملية الجذر، فقط معلمات recvbuf و recvcount و recvtypeوالجذروcomm مهمة في العمليات الأخرى. يجب أن تكون معلمات الجذروcomm متطابقة في جميع العمليات.
يجب ألا تتسبب مواصفات العد والأنواع في قراءة أي موقع على الجذر أكثر من مرة واحدة.
إذا كانت معلمة comm تشير إلى متداخل، فإن الاستدعاء يتضمن جميع العمليات في جهاز الاتصال البيني، ولكن مع مجموعة واحدة، المجموعة أ، التي تحدد عملية الجذر. تقوم جميع العمليات في المجموعة الأخرى، المجموعة ب، بتعيين نفس القيمة في معلمة الجذر ، أي ترتيب عملية الجذر في المجموعة A. تعين عملية الجذر القيمة MPI_ROOT في المعلمة الجذر . تعين جميع العمليات الأخرى في المجموعة A القيمة MPI_PROC_NULL في المعلمة الجذر . يتم بث البيانات من عملية الجذر إلى جميع العمليات في المجموعة B. يجب أن تكون معلمات المخزن المؤقت للعمليات في المجموعة B متسقة مع معلمة المخزن المؤقت لعملية الجذر.
المتطلبات
منتج |
حزمة HPC Pack 2012 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 R2 MS-MPI القابلة لإعادة التوزيع، حزمة HPC Pack 2008 MS-MPI القابلة لإعادة التوزيع أو حزمة HPC Pack 2008 للعميل |
الرأس |
Mpi.h؛ Mpif.h |
المكتبة |
Msmpi.lib |
Dll |
Msmpi.dll |