2010-11-16 21 views
5

मैं जानना चाहता हूं कि ओपनएमपीआई/एमपीआईसी 2 क्लस्टर का नोड समाप्त होने पर क्या होता है? क्या ऐसी कोई व्यवस्था है जो इस मामले के लिए सहिष्णु है और निष्पादन जारी रखती है?ओपन एमपीआई/एमपीआईसी - क्या होता है यदि कोई नोड समाप्त हो जाता है?

अपने जवाब हेनरिक

उत्तर

3

नोट एक विशेषता यह है कि एमपीआई 1.x दिनों के बाद से ही अस्तित्व में है तो आपको एक त्रुटि हैंडलर सेट कर सकते हैं कि यह है कि: जैसे,

http://www.mpi-forum.org/docs/mpi-11-html/node148.html

के रूप में मार्क नोट, हम में से ज्यादातर सिर्फ MPI_ERRORS_ARE_FATAL (जो का उपयोग डिफ़ॉल्ट) क्योंकि हमारे एल्गोरिदम बहुत राज्य-भारी हैं और आसानी से पुनर्प्राप्त नहीं किए जा सकते हैं (चेकपॉइंटिंग के माध्यम से छोड़कर, जो हम में से अधिकांश वैसे भी करते हैं)।

लेकिन इस मामले की आवश्यकता नहीं है; आप एमपीआई फ़ंक्शंस को त्रुटि संदेशों को वापस कर सकते हैं और जितना संभव हो उतना पुनर्प्राप्त करने का प्रयास कर सकते हैं।

वहां कुछ गलती-सहनशील एमपीआई पैकेज हैं - http://icl.cs.utk.edu/ftmpi/ (जो कि पुराना है और केवल एमपीआई 1.2 कार्यक्षमता लागू करता है)। हाल ही में, http://osl.iu.edu/research/ft/cifts/ एक अलग परियोजना के रूप में ओपनएमपीआई में एक दृष्टिकोण रखा जा रहा है, और एक ओएस-स्तरीय चेकपॉइंट/पुनरारंभ पैकेज भी है, बीएलसीआर, जो ब्याज का हो सकता है।

एमपीआई -3 मंच एमपीआई में मानक गलती सहनशीलता API पर चर्चा कर रहा है, इसलिए ऐसी परियोजनाओं की गति accellerating है।

+0

+1: मैंने कुछ साल पहले पाठ्यक्रम पर जाने के बाद एमपीआई त्रुटि हैंडलर को एक विचार नहीं दिया है। –

+2

एमपीआईसी 2 की हालिया 1.3.1 रिलीज पिछले रिलीज की तुलना में अधिक गलती सहनशील है। यह व्यक्तिगत प्रक्रिया विफलताओं को सहन करता है जब MPI_ERRORS_RETURN को त्रुटि हैंडलर के रूप में उपयोग किया जाता है, लेकिन सामूहिक संचालन अप्रत्याशित तरीकों से विफल हो सकता है या प्रोग्राम को लटका सकता है। वह रिलीज बीएलसीआर का भी समर्थन करता है। यहां प्रासंगिक चेंजलॉग है: https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.3.1/CHANGES –

1

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