नेटवर्किंग में हम फ़ाइल (डिस्क ड्राइवर) या डेटाबेस साझा करते हैं। लेकिन हम नेटवर्क पर सीपीयू या रैम कैसे साझा कर सकते हैं।
नेटवर्किंग में हम फ़ाइल (डिस्क ड्राइवर) या डेटाबेस साझा करते हैं। लेकिन हम नेटवर्क पर सीपीयू या रैम कैसे साझा कर सकते हैं।
जवाबों:
ऐसा करने के लिए सीपीयू / रैम संसाधनों तक पहुंचने वाले प्रोग्राम (एस) को विशेष रूप से उक्त संसाधनों तक पहुंचने के लिए डिज़ाइन किया जाना चाहिए। इस तरीके से स्थापित एक प्रणाली को क्लस्टर कहा जाता है, और जिस तरह से संसाधनों को साझा किया जाता है वह MPI नामक एक प्रोटोकॉल (संदेश पासिंग इंटरफ़ेस) के साथ होता है। यह एक मुफ्त डाउनलोड है और लिनक्स के साथ इसका उपयोग करने से कम से कम लागत के लिए एक शक्तिशाली क्लस्टर (संभवतः सुपर कंप्यूटर भी मिल सकता है), लेकिन यह तब तक बेकार है जब तक कि आपके पास ऐसे प्रोग्राम नहीं हैं जो विशेष रूप से एमपीआई का लाभ उठाने के लिए डिज़ाइन किए गए थे। वहाँ कुछ अच्छे क्लस्टर ट्यूटोरियल हैं, अगर आप अभी भी रुचि रखते हैं तो आपको एक की जांच करनी चाहिए।
संपादित करें:
यदि आप एक क्लस्टर स्थापित करना चाहते हैं तो मैं यहां ट्यूटोरियल की सिफारिश करूंगा । मैंने लगभग एक साल पहले इस ट्यूटोरियल का अनुसरण करके एक क्लस्टर बनाया और इसने बहुत अच्छा काम किया। ट्यूटोरियल थोड़ा पुराना है, इसलिए कुछ फाइलें बिल्कुल नहीं हो सकती हैं जहां ट्यूटोरियल कहता है कि वे हैं (कभी-कभी फाइलें अलग-अलग / नए लिनक्स डिस्ट्रोस में स्थानांतरित हो जाती हैं) लेकिन अगर आप लिनक्स से कम से कम परिचित हैं तो यह एक मुद्दा नहीं होना चाहिए। ट्यूटोरियल MPI के पुराने संस्करण का उपयोग करता है, लेकिन मैंने नवीनतम संस्करण का उपयोग किया है और इसमें कोई समस्या नहीं थी जिसे आसानी से हल नहीं किया गया था। आप जो कर रहे हैं उसके आधार पर वास्तव में वहाँ एक कार्यक्रम हो सकता है जो एमपीआई का लाभ ले सकता है। मुझे पता है कि कुछ वीडियो एन्कोडिंग और नंबर क्रंचिंग प्रोग्राम हैं जो एमपीआई का लाभ उठाते हैं जिन्हें सार्वभौमिक स्रोतों से डाउनलोड किया जा सकता है।
आप रैम डिस्क का उपयोग करके रैम साझा कर सकते हैं, लेकिन यह सामान्य डिस्क साझा करने जैसा लगता है, सिवाय इसके कि ये दूसरे कंप्यूटर की रैम में हैं। एक कंप्यूटर के लिए किसी अन्य कंप्यूटर की रैम का उपयोग करने का कोई सीधा तरीका नहीं है जैसे कि वह स्वयं का रैम था, लेकिन अन्य कंप्यूटर की रैम का उपयोग करने के कुछ तरीके हैं। अगले पैराग्राफ में उस पर और अधिक।
सीपीयू साझाकरण के लिए, यह संभव है लेकिन इसके लिए कोई एकल मानक नहीं है। आप इसे साझा नहीं कर सकते और किसी अन्य कंप्यूटर को आवश्यक संसाधन लेने दें। इसके बजाय आपको विशेष रूप से डिज़ाइन किए गए एप्लिकेशन की आवश्यकता होती है जो एक साथ कई कंप्यूटरों पर काम कर सकते हैं। इसे अक्सर वितरित कंप्यूटिंग कहा जाता है और इसका उपयोग कुछ शोध परियोजनाओं जैसे कि SETI @ होम, आइंस्टीन @ होम, क्लाइमेटप्रेडिक्ट.net और कई अन्य द्वारा किया जाता है।
मूल रूप से कार्यक्रम इस तरह से काम करते हैं कि एक केंद्रीय सर्वर होता है जो उस कार्य को वितरित करता है जिसे करने की आवश्यकता होती है। नेटवर्क पर कंप्यूटर केंद्रीय कंप्यूटर से कार्य इकाइयों को डाउनलोड करते हैं और उन्हें संसाधित करते हैं। उसके बाद केंद्रीय कंप्यूटर ग्राहकों से परिणाम प्राप्त करता है और उन्हें एक सामंजस्यपूर्ण परिणाम में विलय करता है। इस तरह से कंप्यूटर नेटवर्क पर सीपीयू और रैम संसाधनों को "साझा" करते हैं। इसका नकारात्मक पक्ष यह है कि कार्यक्रमों को इस तरह से बनाने की आवश्यकता है जैसे कि नेटवर्क पर काम करने के लिए और अभी वितरित कंप्यूटिंग कंप्यूटर के लिए आम उपयोगों के बीच पर्याप्त लोकप्रिय नहीं है, इसलिए केवल कुछ विशेष कार्यक्रम ही इसका समर्थन करते हैं। दूसरी ओर, यह आमतौर पर वैज्ञानिक उद्देश्यों के लिए उपयोग किया जाता है क्योंकि यह एक मेनफ्रेम कंप्यूटर तक पहुंच प्राप्त करने की तुलना में बड़ी संख्या में पर्सनल कंप्यूटर या प्लेस्टेशंस 3 प्राप्त करने के लिए सस्ता है।
आप एक XY प्रॉब्लम में पड़ गए हैं , आपको यह नहीं पूछना चाहिए कि "मैं कैसे सीपीयू और रैम एप्रो कंप्यूटर को साझा कर सकता हूं" लेकिन "मैं ZZZZZ का उपयोग करके अपने रेंडर बनाने के लिए कई कंप्यूटरों का उपयोग कैसे कर सकता हूं?"
यह अत्यधिक निर्भर करता है कि आप किस सॉफ्टवेयर का उपयोग कर रहे हैं, और आप क्या दे रहे हैं (क्या आप वीडियो ट्रांसकोड कर रहे हैं, या आप एक 3 डी मॉडल / वीडियो प्रदान कर रहे हैं?)।
कुछ उदाहरण लेने के लिए मुफ्त 3 डी सॉफ्टवेयर ब्लेंडर वितरित रेंडरिंग का समर्थन करता है जहां आपके पास एक आउटपुट उत्पन्न करने के लिए सभी कंप्यूटर एक साथ काम कर सकते हैं। यदि आप कुछ त्वरित googling वीडियो प्रतिपादन कर रहे हैं, तो ओपन सोर्स प्रोजेक्ट MediaEncodingCluster पाया गया जो आपको कई कंप्यूटरों का उपयोग करके वीडियो और ऑडियो फ़ाइलों को प्रस्तुत करने की अनुमति देता है।
केवल ऑपरेटिंग सिस्टम मुझे पता है जो सीपीयू / रैम को साझा करने की अनुमति देता है वह है प्लान 9। वहां आप लगभग कुछ भी निर्यात / माउंट कर सकते हैं। इसका मतलब यह नहीं है कि प्रदर्शन अच्छे हैं, निश्चित रूप से।
नेटवर्क पर कार्यों के लिए सीपीयू / रैम को साझा करना एक अच्छी सुविधा होगी। वर्तमान में हम अभी भी बॉक्स में प्रोग्राम रखने के लिए कुछ पुरानी धारणाओं से बंधे हुए हैं जहां चीजें होती हैं, लेकिन हम कोड के समान स्निपलेट तक पहुंचने के लिए एक ही मशीन पर कई सीपीयू की अनुमति दे सकते हैं। हमारे पास एक विधि है (कम से कम) जो इस तरह से कुछ करती है। java webpages में सर्वर और क्लाइंट दोनों का उपयोग करके काम करता है, लेकिन यह अभी भी सर्वर-क्लाइंट तरीके से चीजों को करने के लिए बंद है (जहां सर्वर अधिकांश डेटा रखता है)। जब हम एक से अधिक cpus (मशीन को छोड़कर जो काम करने के लिए प्रोग्राम स्निप और डेटा स्निप असाइन करने की आवश्यकता होती है, को छोड़कर) हम बहुत कुछ उसी तरह मशीनों को कार्य सौंपने में सक्षम होने की आवश्यकता है। यह नेटवर्क पर भारी भार डालता है, हालांकि यदि कार्य स्वयं सरल प्रकृति का नहीं है और इसके परिणामस्वरूप नई अड़चनें आ सकती हैं। मुझे यह विचार पसंद है कि यह कहां है '