إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يجمع البيانات من البيانات ويبعثرها إلى جميع أعضاء المجموعة. تضيف الدالة MPI_Alltoallv مرونة إلى الدالة MPI_Alltoall من خلال السماح بعدد مختلف من البيانات من كل عملية.
بناء الجملة
int MPIAPI MPI_Alltoallv(
_In_ void *sendbuf,
_In_ int *sendcounts,
_In_ int *sdispls,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
_In_ int *recvcounts,
_In_ int *rdispls,
MPI_Datatype recvtype,
MPI_Comm comm
);
المعلمات
sendbuf [in]
المؤشر إلى البيانات التي سيتم إرسالها إلى جميع العمليات في المجموعة. يتم تحديد عدد ونوع البيانات للعناصر في المخزن المؤقت في معلمات sendcountوsendtype . يتوافق كل عنصر في المخزن المؤقت مع عملية في المجموعة.إذا كانت معلمة comm تشير إلى أداة داخلية، يمكنك تحديد خيار موضعي عن طريق تحديد MPI_IN_PLACE في جميع العمليات. يتم تجاهل معلمات sendcountوsdisplsوsendtype . تدخل كل عملية البيانات في عنصر مخزن الاستلام المؤقت المقابل.
يجب أن يكون للبيانات التي يتم إرسالها وتلقيها نفس خريطة النوع كما هو محدد بواسطة صفيف recvcounts ومعلمة recvtype . تتم قراءة البيانات من مواقع المخزن المؤقت للاستلام المحدد بواسطة المعلمة rdispls .
حسابات الإرسال [in]
عدد عناصر البيانات التي ترسلها هذه العملية في المخزن المؤقت المحدد في المعلمة sendbuf . إذا كان عنصر فيsendcount صفرا، يكون جزء البيانات من الرسالة من هذه العملية فارغا.sdispls [in]
موقع البيانات لكل عملية اتصال بالنسبة إلى معلمة sendbuf .يحدد الإدخال j الإزاحة المتعلقة بمعلمة sendbuf التي يجب أخذ البيانات الصادرة منها الموجهة للعملية j.
نوع الإرسال
نوع بيانات MPI للعناصر في المخزن المؤقت لإرسال.recvbuf [out]
المؤشر إلى مخزن مؤقت يحتوي على البيانات التي يتم تلقيها من كل عملية. يتم تحديد رقم ونوع البيانات للعناصر في المخزن المؤقت في معلمات recvcount و recvtype .عمليات الاستصلاح [in]
عدد عناصر البيانات من كل عملية اتصال في المخزن المؤقت للاستلام.rdispls [in]
موقع البيانات من كل عملية اتصال، بالنسبة إلى معلمة recvbuf .في صفائف معلمات recvbuf و recvcountsوrdispls ، يشير العنصر nth لكل صفيف إلى البيانات التي يتم تلقيها من عملية nth communicator.
نوع مستطيل
نوع بيانات MPI لكل عنصر في المخزن المؤقت.الاتصالات
تحديد مقبض MPI_Comm communicator.
القيمة المُرجعة
إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.
في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .
Fortran
MPI_ALLTOALL(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
COMM, IERROR)
<type> SENDBUF(*), R.ECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR
الملاحظات
يجب أن يكون توقيع النوع المحدد بواسطة معلمات sendcountوsendtype لعملية ما مساويا لتوقيع النوع المحدد بواسطة معلمات recvcount و recvtype لعملية الاستلام. لذلك، يجب أن تكون كمية البيانات المرسلة مساوية لكمية البيانات التي يتم تلقيها بين أي زوج من العمليات. لا يزال يسمح بخرائط النوع المميزة بين المرسل والمتلقي.
جميع المعلمات مهمة في جميع العمليات. يجب أن تكون معلمة comm متطابقة في جميع العمليات.
إذا كانت معلمة comm تشير إلى intracommunicator، فإن كتلة jth التي يتم إرسالها من العملية I يتم تلقيها بواسطة العملية j ويتم وضعها في كتلة ith من المخزن المؤقت للاستلام. لا يجب أن يكون لهذه الكتل نفس الحجم.
نتيجة استدعاء الدالة MPI_Alltoallv كما لو كانت كل عملية ترسل رسالة إلى كل عملية أخرى مع ، MPI_Send(sendbuf + sdispls[i]*extent(sendtype), sendcounts[i], sendtype, I, …)، وتلقيت رسالة من كل عملية أخرى مع استدعاء إلى MPI_Recv(recvbuf + rdispls[i]*extent(recvtype), recvcounts[i], recvtype, I, …).
يشير تحديد الخيار الموضعي إلى أن نفس كمية ونوع البيانات يتم إرسالها وتلقيها بين أي عمليتين في مجموعة communicator. يمكن لأزواج مختلفة من العمليات تبادل كميات مختلفة من البيانات. يجب على المستخدمين التأكد من أن recvcounts[j] و recvtype عند العملية تتطابق معrecvcounts[i] و recvtype على العملية j. يمكن أن يكون هذا التبادل المتماثل مفيدا في التطبيقات حيث لا يتم استخدام البيانات التي سيتم إرسالها بواسطة عملية الإرسال بعد استدعاء الدالة MPI_Alltoallv .
إذا كانت معلمة comm تشير إلى متداخل، فإن النتيجة كما لو أن كل عملية في المجموعة A ترسل رسالة إلى كل عملية في المجموعة B، والعكس صحيح. يجب أن يكون المخزن المؤقت j th send من العملية i في المجموعة A متسقا مع المخزن المؤقت ith تلقي العملية j في المجموعة 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 |