ما هي بعض السيناريوهات التي تناسب MPI ​​أفضل من Map Reduce؟

StackOverflow https://stackoverflow.com/questions/1530490

سؤال

بقدر ما أفهم، يعطيني MPI أكثر سيطرة أكبر على مدى توصيل العقد المختلفة في الكتلة بالضبط.

في Mapreduce / Hadoop، تقوم كل عقدة ببعض الحسابات، وتبادل البيانات مع العقد الأخرى، ثم قم بإدخال قسم النتائج. يبدو بسيطا، ولكن نظرا لأنك يمكنك تكرار العملية، حتى الخوارزميات مثل k-mearry أو pagerank تناسب النموذج جيدا. على نظام الملفات الموزعة مع محلية الجدولة، يكون الأداء جيدا على ما يبدو. بالمقارنة، يعطيني MPI سيطرة صريحة على كيفية إرسال العقد رسائل إلى بعضها البعض.

هل يمكن لأي شخص أن يصف سيناريو برمجة الكتلة حيث يكون نموذج MPI الأكثر عمليا ميزة واضحة على طراز Mappreduce أبسط؟

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

المحلول

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

نصائح أخرى

Athough، تم الرد على هذا السؤال، أود أن أضيف / أؤكد من جديد نقطة مهمة للغاية.

MPI هو الأنسب للمشاكل التي تتطلب الكثير من الاتصالات الانوية النصية.

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

هذا هو السبب الأساسي وراء وجود شيء مثل هادوب. يجب توزيع البيانات أيضا - نظام الملفات الموزعة Hadoop!

أن نقول كل هذا باختصار، MPI هو جيد لمتوازي المهمة والحدبة جيدة لمتوازي البيانات.

أفضل إجابة يمكن أن أتناولها هي أن MPI أفضل من MAPRREDUCE في حالتين:

  1. للمهام القصيرة بدلا من معالجة الدفعات. وبعد على سبيل المثال، لا يمكن استخدام MAPRREDUCS للاستجابة للاستعلامات الفردية - من المتوقع أن تستغرق كل وظيفة دقائق. أعتقد أنه في MPI، يمكنك إنشاء نظام استجابة استعلام حيث ترسل الأجهزة رسائل إلى بعضها البعض لتوجيه الاستعلام وإنشاء الإجابة.

  2. للوظائف العقد تحتاج إلى التواصل أكثر من دعم وظائف موضة تكرار، ولكن ليس أكثر من اللازم بحيث تجعل النفقات العامة للاتصال حساب غير عملي. لست متأكدا من عدد المرات التي تحدث فيها مثل هذه الحالات في الممارسة العملية.

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

الكل في الكل، أعتقد أن الفوائد التي تنطلق نماذج mapreduce / dag إلى طاولة مثل مديري الموارد الديناميكي، وستجعل حساب التسامح مع الأخطاء جعلها مجدية لمجموعات الحوسبة العلمية.

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