مشاركة عبر


الدالة MPI_Comm_create

استخراج مجموعة فرعية مجموعة من العمليات لغرض حساب بيانات متعددة تعليمات متعددة (MIMD) منفصلة في موصل منفصل.

بناء الجملة

int MPIAPI MPI_Comm_create(
        MPI_Comm  comm,
        MPI_Group group,
  _Out_ MPI_Comm  *newcomm
);

المعلمات

  • الاتصالات
    المصدر communicator.

  • مجموعه
    المجموعة التي تحدد المجموعة الفرعية المطلوبة للعمليات في المصدر communicator.

  • newcomm [out]
    عند العودة، يحتوي على مؤشر إلى موصل جديد.

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

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

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

Fortran

    MPI_COMM_CREATE(COMM,GROUP,NEWCOMM,IERROR)
        INTEGER COMM, GROUP, NEWCOMM, IERROR

الملاحظات

يمكن تقسيم الموصل الذي تنشئه هذه الدالة إلى حوسبة فرعية متوازية باستخدام الدالة MPI_Comm_create أو منشئات الاتصال الأخرى. الدالة MPI_Comm_split هي دالة أكثر عمومية لإنشاء كائنات MPI_Comm .

إذا كانت معلمة comm تشير إلى intracommunicator، فترجع هذه الدالة موصلا جديدا مع مجموعة اتصال كما هو محدد بواسطة معلمة المجموعة . لا يتم نشر أي معلومات مخزنة مؤقتا من المصدر communicator إلى communicator الجديد. يجب استدعاء كل عملية باستخدام معلمة مجموعة هي مجموعة فرعية للمجموعة المقترنة بالمتصل المصدر. القيمة المحتملة هي MPI_GROUP_EMPTY. يمكن للعمليات تحديد قيم مختلفة لمعلمة المجموعة . إذا استدعت عملية مع مجموعة غير فارغة، فيجب أن تستدعي جميع العمليات في تلك المجموعة الدالة بنفس القيم لمعلمة المجموعة ، أي نفس الأعضاء بالترتيب نفسه. وإلا، ترجع الدالة خطأ. تعني هذه النتيجة أن مجموعة المجموعات المحددة عبر العمليات يجب أن تكون مفككة. إذا كانت عملية الاستدعاء عضوا في المجموعة المحددة في معلمة المجموعة ، فإن معلمة newcomm تمثل موصلا بالمجموعة المحددة كمجموعة مقترنة بها. إذا كانت العملية تحدد مجموعة لا تنتمي إليها، على سبيل المثال، MPI_GROUP_EMPTY، فإن معلمة newcomm ترجع MPI_COMM_NULL.

تدعم الواجهة الآلية الأصلية من MPI-1.1، والتي تتطلب نفس المجموعة في جميع عمليات comm. تم توسيعه في MPI-2.2 لتمكين استخدام المجموعات الفرعية المفككة لتمكين عمليات التنفيذ للقضاء على الاتصال غير الضروري الذي ستتحمله وظيفة MPI_Comm_split عندما يعرف المستخدم بالفعل عضوية المجموعات الفرعية المفككة.

الدالة MPI_Comm_create جماعية ويجب استدعاؤها بواسطة جميع العمليات في مجموعة المصدر communicator. يأتي شرط مشاركة المجموعة بأكملها في المكالمة من المشكلات التالية:

  • فهو يسمح للتنفيذ بطبقة وظيفة MPI_Comm_create فوق الاتصالات الجماعية العادية.
  • ويوفر أمانا إضافيا، خاصة في حالة استخدام مجموعات متداخلة جزئيا لإنشاء موصلين جدد.
  • يسمح للتطبيقات بتجنب بعض الاتصالات المتعلقة بإنشاء السياق.

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

المتطلبات

منتج

حزمة 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

راجع أيضًا

وظائف MPI Communicator

MPI_Comm_split