MPI_Allgatherv الدالة
جمع كمية متغيرة من البيانات من كل عضو في مجموعة وإرسال البيانات إلى جميع أعضاء المجموعة. تشبه الدالة MPI_AllgathervMPI_Gatherv، باستثناء أن جميع العمليات تتلقى النتيجة، بدلا من الجذر فقط. يتم تلقي كتلة البيانات التي يتم إرسالها من عملية jth بواسطة كل عملية ويتم وضعها في كتلة jمن المخزن المؤقت recvbuf. لا يجب أن تكون جميع هذه الكتل بنفس الحجم.
بناء الجملة
int MPIAPI MPI_Allgatherv(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
_In_ int *recvcounts,
_In_ int *displs,
MPI_Datatype recvtype,
MPI_Comm comm
);
المعلمات
sendbuf [in]
المؤشر إلى البيانات التي سيتم إرسالها إلى جميع العمليات في المجموعة. يتم تحديد عدد ونوع البيانات للعناصر في المخزن المؤقت في معلمات sendcountوsendtype . يتوافق كل عنصر في المخزن المؤقت مع عملية في المجموعة.إذا كانت معلمة comm تشير إلى أداة داخلية، يمكنك تحديد خيار موضعي عن طريق تحديد MPI_IN_PLACE في جميع العمليات. يتم تجاهل معلمات sendcountوsendtype . تدخل كل عملية البيانات في عنصر مخزن الاستلام المؤقت المقابل. ترسل العملية nالبيانات إلى عنصر nth للمخزن المؤقت للاستلام.
عدد الإرسال
عدد عناصر البيانات التي ترسلها هذه العملية في المخزن المؤقت المحدد في المعلمة sendbuf . إذا كان عنصر في sendcount صفرا، يكون جزء البيانات من الرسالة من هذه العملية فارغا.نوع الإرسال
نوع بيانات MPI للعناصر في المخزن المؤقت لإرسال.recvbuf [out]
المؤشر إلى مخزن مؤقت يحتوي على البيانات التي يتم تلقيها من كل عملية. يتم تحديد رقم ونوع البيانات للعناصر في المخزن المؤقت في معلمات recvcount و recvtype .عمليات الاستصلاح [in]
عدد عناصر البيانات من كل عملية اتصال في المخزن المؤقت للاستلام.ينكر [in]
موقع البيانات من كل عملية اتصال، بالنسبة إلى معلمة recvbuf .في صفائف المعلمات recvbuf و recvcounts و displpls، يشير العنصر nمن كل صفيف إلى البيانات التي يتم تلقيها من عملية n th communicator.
نوع مستطيل
نوع بيانات MPI لكل عنصر في المخزن المؤقت.الاتصالات
مقبض MPI_Comm communicator.
القيمة المُرجعة
إرجاع MPI_SUCCESS عند النجاح. وإلا، فإن القيمة المرجعة هي رمز خطأ.
في Fortran، يتم تخزين القيمة المرجعة في المعلمة IERROR .
Fortran
MPI_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE,COMM, IERROR)
<type> SENDBUF(*), R.ECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR
الملاحظات
تتوافق قواعد استخدام MPI_Allgatherv مع قواعد MPI_Gatherv.
يجب أن يكون توقيع النوع المقترن بمعلمة نوع الإرسال في عملية ما مساويا لتوقيع النوع المقترن بمعلمة recvtype في أي عملية أخرى.
إذا كانت معلمة comm تشير إلى أداة داخلية، فإن نتيجة الاستدعاء إلى MPI_Allgatherv(...)
كما لو كانت جميع العمليات تنفذ استدعاءات إلى MPI_GatherV(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs,recvtype,root,comm)
، ل root = 0 , ..., n-1
.
إذا كانت معلمة comm تشير إلى متداخل، فإن كل عملية من مجموعة واحدة، على سبيل المثال، المجموعة A، تساهم في عدد عناصر البيانات المحددة في معلمة sendcount . يتم تسلسل هذه البيانات، ويتم تخزين النتيجة في كل عملية في المجموعة الأخرى، المجموعة B. وعلى العكس من ذلك، يتم تخزين تسلسل بيانات العمليات في المجموعة B في كل عملية في المجموعة A. يجب أن تكون معلمات المخزن المؤقت المرسل في المجموعة A متسقة مع معلمات المخزن المؤقت للاستلام في المجموعة 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 |