क्लाउड न्यूमेरिक्स - यह क्या है?

पिछले हफ्ते, मैंने Microsoft को क्लाउड में काम करने के लिए एक गणित पुस्तकालय जारी करने के बारे में एक नोट पोस्ट किया।

( उत्पाद से खुद को लिंक करें )

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

तो, "क्लाउड न्यूमेरिक्स" नया .NET प्रोग्रामिंग फ्रेमवर्क है जिसे बड़े वितरित डेटा सरणियों पर गहन कंप्यूटिंग करने के लिए डिज़ाइन किया गया है।

इस ढांचे में निम्न शामिल हैं:

1. डेटासेट के लिए पारंपरिक और वितरित कंटेनर
2. सिस्टम जो आपको क्लाउड में क्लस्टर नोड्स पर डेटा के वितरण में हेरफेर करने की अनुमति देते हैं और उन पर समानांतर गणना करते हैं
3. पुस्तकालय गणितीय कार्यों की एक विस्तृत श्रृंखला जो एक साथ कई क्लस्टर नोड्स पर की जा सकती है
4. उपयोगिताओं का एक सेट जो विंडोज एज़्योर में क्लाउड न्यूमेरिक्स पर निर्मित अनुप्रयोगों की तैनाती और निष्पादन को सरल बनाता है

मैप / रिड्यूस एप्रोच (जैसे हाडूप) का उपयोग करने वाले सिस्टम को बड़े डेटा सरणियों के प्रसंस्करण को सरल बनाने के लिए डिज़ाइन किया गया था। ये सिस्टम एक बहुत ही सरल प्रोग्रामिंग मॉडल और एक प्रोग्राम सबसिस्टम प्रदान करते हैं जो मानक कंप्यूटिंग नोड्स से मिलकर विशाल समूहों पर स्केलिंग के विवरण को छुपाता है। यह सरलीकृत मॉडल क्लस्टर में सभी नोड्स की मुख्य मेमोरी में फिट नहीं होने के लिए डेटा पर रिलेशनल ऑपरेशन, क्लस्टरिंग एल्गोरिदम और मशीन लर्निंग के लिए पर्याप्त है।

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

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

"क्लाउड न्यूमेरिक्स" द्वारा प्रदान किए गए सार और इंटरफेस में समानांतर कंप्यूटिंग को व्यवस्थित करने के लिए कोई निम्न-स्तरीय निर्माण शामिल नहीं है। Concurrency को कार्यान्वित किया जाता है और इसे डेटा प्रकारों पर संचालन के पीछे उपयोगकर्ता से छिपाया जाता है, जैसे वितरित मैट्रिस। छिपे हुए समानांतर संचालन सरल और कुशल कोड ऑपरेशन का नेतृत्व करते हैं और मौजूदा BLAS और ScaLAPACK पुस्तकालयों का उपयोग करते हैं।

हैलो वर्ल्ड उदाहरण

समानांतर सॉफ़्टवेयर मॉडल "क्लाउड न्यूमेरिक्स" को संक्षेप में बताने के लिए, मैं C # में एक उदाहरण दूंगा जो एक वितरित मैट्रिक्स को मेमोरी में लोड करता है, समानांतर में इसके आइजेनवेल्स की गणना करता है, और मैट्रिक्स के दोहरे आदर्श और सशर्तता को प्रिंट करता है।

var A = Distributed.IO.Loader.LoadData(csvReader);
var S = Decompositions.SvdValues(A);
var s0 = ArrayMath.Max(S);
var s1 = ArrayMath.Min(S);
Console.WriteLine("Norm: {0}, Condition Number: {1}", s0, s0 / s1);

.

Source: https://habr.com/ru/post/In136953/


All Articles