2011-03-03 29 views
43

के लिए मल्टीप्रोसेसिंग मॉड्यूल का उपयोग करना मुझे कंप्यूटर क्लस्टर का उपयोग करके एक पायथन प्रोग्राम चलाने में रूचि है। मैं अतीत में पाइथन एमपीआई इंटरफेस का उपयोग कर रहा हूं, लेकिन इन्हें संकलित/स्थापित करने में कठिनाइयों के कारण, मैं उन समाधानों को पसंद करूंगा जो अंतर्निहित मॉड्यूल का उपयोग करते हैं, जैसे कि पायथन के multiprocessing मॉड्यूल।क्लस्टर कंप्यूटिंग

मैं वास्तव में क्या करना चाहूंगा बस multiprocessing.Pool उदाहरण स्थापित करें जो पूरे कंप्यूटर क्लस्टर में फैल जाएगा, और Pool.map(...) चलाएगा। क्या यह ऐसा कुछ है जो संभव है/करना आसान है?

यदि यह असंभव है, तो मैं कम से कम Process उदाहरणों को केंद्रीय स्क्रिप्ट से किसी भी नोड पर प्रत्येक नोड के लिए अलग-अलग पैरामीटर के साथ शुरू करने में सक्षम होना चाहता हूं।

+2

शायद JUG आज़माएं: http://packages.python.org/Jug/ – unutbu

उत्तर

35

यदि क्लस्टर कंप्यूटिंग द्वारा आप वितरित मेमोरी सिस्टम (एकाधिक नोड्स बल्कि एसएमपी) का मतलब है तो पाइथन का मल्टीप्रोसेसिंग उपयुक्त विकल्प नहीं हो सकता है। यह कई प्रक्रियाओं को जन्म दे सकता है लेकिन वे अभी भी एक नोड के भीतर बंधे रहेंगे।

आपको जो चाहिए वह एक ढांचा है जो कई नोड्स में प्रक्रियाओं के स्पॉइंग को संभालता है और प्रोसेसर के बीच संचार के लिए एक तंत्र प्रदान करता है। (एमपीआईआई क्या करता है काफी ज्यादा)।

क्लस्टर कंप्यूटिंग के साथ मदद करने वाले ढांचे की सूची के लिए Parallel Processing on the Python wiki पर पृष्ठ देखें।

सूची से, pp, jug, pyro और celery हालांकि मैं व्यक्तिगत रूप से के बाद से मैं उनमें से किसी के साथ कोई अनुभव नहीं है (मैं मुख्य रूप से एमपीआई का उपयोग करें) किसी भी समर्थन नहीं कर सकता समझदार विकल्प की तरह लग रहे हो।

यदि स्थापना/उपयोग की आसानी महत्वपूर्ण है, तो मैं jug की खोज करके शुरू करूंगा। यह easy to install, supports common batch cluster systems है, और well documented दिखता है।

+12

मैंने जॉग लिखा (आपके लिए दयालु शब्दों का धन्यवाद)। मैं जोड़ूंगा कि मॉड्यूल भी अच्छी तरह से समर्थित है। यदि आपको कोई भी बग मिलती है, तो वे बहुत तेज़ हो जाएंगे (<24h, आमतौर पर)। – luispedro

+2

पायथन मल्टीप्रोसेसिंग प्रबंधक केवल सिस्टम के भीतर नहीं, कई प्रणालियों के बीच बात कर सकते हैं। देखें: http://eli.thegreenplace.net/2012/01/24/distributed-computing-in-python-with-multiprocessing/ – MattK

11

अतीत में मैंने Pyro का उपयोग इस सफलतापूर्वक करने के लिए किया है। यदि आप मोबाइल कोड चालू करते हैं तो यह स्वचालित रूप से तारों के आवश्यक मॉड्यूल को भेज देगा जो नोड्स पहले से नहीं हैं। सुंदर निफ्टी

+0

बहुत निफ्टी वास्तव में –

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