سؤال

لقد قرأت تعريفات هذه المصطلحات وتفسيري هو أن هناك علاقة واحدة إلى مجموعة واحدة بين المجموعة والتواصل. المجموعة هي مجموعة من العمليات التي ترغب في التواصل مع بعضها البعض والتواصل هو تطبيق لمجموعة.

هل هذا صحيح؟ لماذا لديك مصطلحين مختلفين إذا كان الأمر كذلك؟

هل كانت مفيدة؟

المحلول

أ مجموعة هو مجموعة من معرفات العملية المطلوبة (MPI 2.2 Spec ، Sec 6.2.1). يتم تقديم الطلب من خلال ربط كل معرف العملية فريدة من نوعها مرتبة من 0 إلى Group.size - 1.

أ متصل يغلف جميع التواصل بين مجموعة من العمليات. يرتبط المتواصل داخل المجموعة وكذلك سياقات التواصل لكل من التواصل بين نقطة إلى نقطة وجمعية وربما معلومات السياق الأخرى مثل الطوبولوجيا الافتراضية (المواصفات ، 6.1.2). ويرتبط المشتركة بين المجموعتين مع مجموعتين غير متداخلين.

أنا (ربما فضفاضة للغاية) أفكر في مجموعة التواصل كجدول رمز لها.

قد تحتوي المجموعة على معرفات العملية من العديد من المتواصلين.

أخيرًا ، يعد بناء المجموعات والعمليات على هذه العملية محلية ، ولا تتضمن التواصل بين الفرضية. هذا ليس ، بشكل عام ، صحيحًا بالنسبة للمتواصلين (بطبيعتهم).

نصائح أخرى

هناك الكثير من الاختلافات بين التواصل والمجموعات كما اكتشفت بعد قراءة مواصفات MPI.

تحرير: المجموعات هي كائنات تمثل مجموعات من العمليات.

Communicator هي مجموعة من العمليات التي قد تتواصل مع بعضها البعض وقد تتكون من عمليات من مجموعة واحدة أو من مجموعات متعددة.

وبالتالي فهي كيانات مختلفة تماما. لا ينبغي الخلط بينهم وبين بعضهم البعض.

يحتوي التواصل على مجموعة (مجموعات) بينما المجموعة هي مجرد مجموعة من العمليات.

إذا كان المتواصل يحتوي على مجموعة واحدة فقط ، يطلق عليه intracommunicator (communicator ، MPI_COMM_WORLD هي واحدة تشير إلى مجموعة واحدة تتضمن جميع الرتب).

إذا كانت تحتوي على مجموعتين ، فسيتم استدعاؤها في Intercommunicator (لا يوجد شيء تم إنشاؤه افتراضيًا بالنسبة لك).

ألق نظرة على https://computing.llnl.gov/tutorials/mpi_advanced/davidcronkslides.pdf حيث يقدم شرحًا تصويريًا جيدًا لكيفية أن يكون التواصل عبارة عن حاوية لمجموعتين أو مجموعتين.

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

لا علاقة للمجموعة بالاتصالات على الرغم من أنه يمكن استخدام مجموعة لإنشاء تواصل (التواصل هو مجموعة بالإضافة إلى سياق).

يمكن أيضًا استخدام المجموعة كمعرف في توزيع المهمة/البيانات بين العمليات المختلفة. على سبيل المثال ، يمكننا اختبار ما إذا كانت العملية موجودة في مجموعة لتحديد ما إذا كان ينبغي أن تفعل شيئًا.

أ متصل هو كائن يصف مجموعة من العمليات. في العديد من التطبيقات ، تعمل جميع العمليات معًا بشكل وثيق ، والمتواصل الوحيد الذي تحتاجه هو MPI_COMM_WORLD.

مجموعة وصف جميع العمليات التي تبدأ وظيفتك بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top