2009-10-07 7 views
30

जहां तक ​​मैं समझता हूं, एमपीआई मुझे क्लस्टर में बिल्कुल अलग नोड्स संवाद करने के तरीके पर अधिक नियंत्रण देता है।कुछ परिदृश्य क्या हैं जिनके लिए एमपीआई MapReduce से बेहतर फिट है?

मैपरेडस/हाडोप में, प्रत्येक नोड कुछ गणना करता है, अन्य नोड्स के साथ डेटा का आदान-प्रदान करता है, और फिर परिणामों के अपने विभाजन को जोड़ता है। सरल लगता है, लेकिन चूंकि आप प्रक्रिया को फिर से सक्रिय कर सकते हैं, यहां तक ​​कि के-साधन या पेजरैंक जैसे एल्गोरिदम भी मॉडल को अच्छी तरह से फिट करते हैं। शेड्यूलिंग के इलाके के साथ एक वितरित फ़ाइल सिस्टम पर, प्रदर्शन स्पष्ट रूप से अच्छा है। तुलनात्मक रूप से, एमपीआई मुझे स्पष्ट नियंत्रण देता है कि कैसे नोड्स एक-दूसरे को संदेश भेजते हैं।

क्या कोई क्लस्टर प्रोग्रामिंग परिदृश्य का वर्णन कर सकता है जहां अधिक सामान्य एमपीआई मॉडल सरल MapReduce मॉडल पर एक स्पष्ट लाभ है?

उत्तर

23

लगभग कोई भी वैज्ञानिक कोड - सीमित मतभेद, परिमित तत्व इत्यादि। सर्कुलर उत्तर की किस तरह की ओर जाता है, कि किसी भी वितरित कार्यक्रम जो मैपरेडस को आसानी से मैप नहीं करता है, अधिक सामान्य एमपीआई मॉडल के साथ बेहतर ढंग से लागू किया जाएगा। सुनिश्चित नहीं है कि यह आपके लिए बहुत मददगार है, मैं इसे पोस्ट करने के ठीक बाद इस उत्तर को कम कर दूंगा।

+5

ओह, मैं अपने उत्तरों को कम नहीं कर सकता - क्या यह मेरे लिए किसी और को कर सकता है। –

+0

धन्यवाद, मार्क (डाउनवोट करने की कोई आवश्यकता नहीं है)। क्या आपका मतलब है कि एमपीआईआई में पुनरावृत्त एल्गोरिदम अधिक कुशल हैं, क्योंकि MapReduce में उन्हें नौकरियों के अनुक्रम के साथ कार्यान्वित किया जाना है? जाहिर है, MapReduce कम से कम कुछ पुनरावृत्त एल्गोरिदम के लिए स्वीकार्य प्रदर्शन है। –

+2

वास्तव में नहीं। मैं परिमित अंतर समाधान जैसे गणनाओं के बारे में सोच रहा था, जिसमें कुल डोमेन के व्यक्तिगत कंप्यूटर (व्यक्तिगत प्रोसेसर पर) कंप्यूटर, फिर हेलो जानकारी का आदान-प्रदान करते हैं, फिर कंप्यूटिंग पर ले जाते हैं। मुझे यह देखना मुश्किल लगता है कि यह MapReduce को कैसे मैप करेगा। –

1

सबसे अच्छा जवाब है कि मैं के साथ आ सकता है कि एमपीआई दो मामलों में MapReduce की तुलना में बेहतर है:

  1. बल्कि बैच प्रोसेसिंग से कम कार्यों के लिए। उदाहरण के लिए, व्यक्तिगत प्रश्नों के जवाब देने के लिए MapReduce का उपयोग नहीं किया जा सकता है - प्रत्येक नौकरी में कुछ मिनट लगने की उम्मीद है। मुझे लगता है कि एमपीआई में, आप एक क्वेरी प्रतिक्रिया प्रणाली बना सकते हैं जहां मशीन क्वेरी को रूट करने और उत्तर उत्पन्न करने के लिए एक-दूसरे को संदेश भेजती हैं।

  2. नौकरियों नोड्स के लिए क्या दोहराया MapReduce नौकरियों समर्थन से अधिक से संवाद करने की जरूरत है, लेकिन नहीं बहुत ज्यादा इसलिए है कि संचार ओवरहेड्स गणना अव्यावहारिक हैं। मुझे यकीन नहीं है कि इस तरह के मामलों में अभ्यास कितनी बार होता है।

+1

नक्शा कम करने के कार्यों में मिलीसेकंड भी ले सकते हैं, कहने की कोई आवश्यकता नहीं है कि उन्हें मिनट लेना चाहिए – Zubair

19

हालांकि, इस प्रश्न का उत्तर दिया गया है, मैं एक बहुत ही महत्वपूर्ण बिंदु को जोड़ना/दोहरा सकता हूं।

एमपीआई उन समस्याओं के लिए सबसे उपयुक्त है जिनके लिए बहुत से इंटरप्रोसेस संचार की आवश्यकता होती है।

जब डेटा बड़ा हो जाता है (पेटबाइट्स, कोई भी?), और थोड़ा इंटरप्रोसेस संचार होता है, एमपीआई दर्द होता है। ऐसा इसलिए है क्योंकि प्रक्रियाएं एक-दूसरे को डेटा भेजने में हर समय व्यतीत होती हैं (बैंडविड्थ एक सीमित कारक बन जाती है) और आपके सीपीयू निष्क्रिय रहेंगे। शायद एक और बड़ी समस्या उस डेटा को पढ़ रही है।

हाडोप जैसे कुछ होने के पीछे यह मौलिक कारण है। डेटा को भी वितरित किया जाना है - हडोप वितरित फ़ाइल सिस्टम!

यह सब संक्षेप में कहने के लिए, एमपीआई कार्य समांतरता के लिए अच्छा है और हैडोप डेटा समांतरता के लिए अच्छा है।

+18

यह कुछ हद तक गलत है। एमपीआई का प्राथमिक फोकस डोमेन अपघटन एल्गोरिदम है, जो अत्यधिक डेटा-समांतर डोमेन है, लेकिन सबडोमेन के बीच कुछ संचार के साथ। डेटा को एमपीआई के साथ स्थानीय रूप से भी संग्रहीत किया जा सकता है। एमपीआई अच्छा है जब संचार पैटर्न में कुछ इलाका है और किसी भी समय आपको कम विलंबता की कमी की आवश्यकता होती है। MapReduce/Hadoop अच्छा है जब पूर्ण सहनशीलता की तुलना में गलती सहनशीलता अधिक महत्वपूर्ण है। – Jed

0

मुझे उम्मीद है कि जब मैं डेटा सेट पर पुनरावृत्ति कर रहा हूं, जिसका आकार प्रोसेसर कैश के साथ तुलनीय है, और जब अन्य कार्यों के साथ संचार की आवश्यकता होती है तो एमपीआई आसानी से मैपरेडस को धड़कता है। बहुत से वैज्ञानिक डोमेन-अपघटन समानांतर दृष्टिकोण इस पैटर्न में फिट बैठते हैं। यदि MapReduce को अनुक्रमिक प्रसंस्करण और संचार, या प्रक्रियाओं को समाप्त करने की आवश्यकता है, तो कैश-आकार की समस्या से निपटने से कम्प्यूटेशनल प्रदर्शन लाभ खो जाता है।

1

जब आपके द्वारा उपयोग की जाने वाली गणना और डेटा में अनियमित व्यवहार होते हैं जो अधिकतर वस्तुओं के बीच कई संदेश-पासिंग में अनुवाद करते हैं, या जब आपको निम्न स्तर के हार्डवेयर स्तर तक पहुंच की आवश्यकता होती है उदा। आरडीएमए तो एमपीआई बेहतर है। कुछ उत्तरों में आप यहां देखते हैं कि कार्यों की विलम्बता या मेमोरी स्थिरता मॉडल का उल्लेख किया गया है, स्पार्क या एक्टर के मॉडल जैसे एकेकेए जैसे ढांचे ने दिखाया है कि वे एमपीआई के साथ प्रतिस्पर्धा कर सकते हैं। आखिर में किसी को यह समझना चाहिए कि एमपीआई को वर्षों के लिए वैज्ञानिक कम्प्यूटेशंस के लिए आवश्यक पुस्तकालयों के विकास के लिए मुख्य आधार होने का लाभ है (यह डीएजी/मैपरेडस मॉडल का उपयोग करके नए ढांचे से गायब सबसे महत्वपूर्ण गायब हिस्सों हैं)।

सब कुछ, मुझे लगता है कि मैपराइडस/डीएजी मॉडल गतिशील संसाधन प्रबंधकों जैसे टेबल पर ला रहे हैं, और गलती सहनशीलता गणना से उन्हें वैज्ञानिक कंप्यूटिंग समूहों के लिए व्यवहार्य बना दिया जाएगा।

संबंधित मुद्दे