मैं दोनों का उपयोग करता हूं। मैं अक्सर मतलाब में प्रोटोटाइप फ़ंक्शंस और एल्गोरिदम का उपयोग करता हूं, क्योंकि जैसा कि कहा गया है, एक एल्गोरिथ्म को किसी ऐसी चीज़ में व्यक्त करना आसान है जो एक शुद्ध गणितीय भाषा के करीब है।
R में उत्कृष्ट पुस्तकालय हैं। मैं अभी भी इसे सीख रहा हूं, लेकिन मैं मतलाब को धूल में छोड़ना शुरू कर रहा हूं क्योंकि एक बार जब आप आर को जानते हैं, तो वहां प्रोटोटाइप कार्यों के लिए यह काफी आसान है।
हालाँकि, मुझे लगता है कि यदि आप चाहते हैं कि एल्गोरिदम एक उत्पादन वातावरण के भीतर कुशलता से काम करे, तो C ++ जैसी संकलित भाषा में जाना सबसे अच्छा है। मुझे मैटलैब और आर (और उस मामले के लिए एक्सेल) दोनों में सी ++ लपेटने का अनुभव है, लेकिन मुझे आर। अस्वीकरण के साथ बेहतर अनुभव मिला है : एक स्नातक छात्र होने के नाते, मैंने अपने डीएलएस के लिए मैटलैब के हाल के संस्करण का उपयोग नहीं किया है, मैं Matlab 7.1 (जो 4 साल की तरह है) में लगभग विशेष रूप से काम कर रहा हूं। शायद नए संस्करण बेहतर काम करते हैं, लेकिन मैं अपने सिर के ऊपर से दो स्थितियों के बारे में सोच सकता हूं, जहां मतलब के पीछे एक सी ++ डीएलएल ने विंडोज एक्सपी को नीली स्क्रीन के कारण बनाया क्योंकि मैं एक सरणी सीमा के बाहर अनुचित तरीके से चला गया - एक बहुत ही कठिन समस्या डिबग करें यदि आपका कंप्यूटर हर बार उस गलती को रिबूट करता है ...
अंत में, आर समुदाय बहुत तेजी से बढ़ता हुआ दिखाई देता है और मतलाब समुदाय की तुलना में कहीं अधिक गति के साथ। इसके अलावा, जैसा कि यह मुफ़्त है आप भी Godforsaken flexlm लाइसेंस प्रबंधक के साथ सौदा नहीं है।
नोट: मेरा लगभग सारा विकास अभी MCMC एल्गोरिदम में है। मैं G +plg2 का उपयोग करते हुए R में विज़ुअलाइज़ेशन के साथ C ++ के उत्पादन में लगभग 90% करता हूं।
समानांतर टिप्पणियाँ के लिए अद्यतन:
मेरे विकास के समय की उचित मात्रा अब MCMC दिनचर्या (यह मेरी पीएचडी थीसिस है) को समानांतर करने पर खर्च की जाती है। मैंने माटलैब के समानांतर टूलबॉक्स और स्टार पी के समाधान का उपयोग किया है (जो मुझे लगता है कि अब माइक्रोसॉफ्ट के स्वामित्व में है ? - जीज़ एक और एक को gobbled है ...) मैंने पाया कि समानांतर टूलबॉक्स एक कॉन्फ़िगरेशन दुःस्वप्न है - जब मैंने इसका इस्तेमाल किया। इसे हर एक क्लाइंट नोड तक रूट एक्सेस की आवश्यकता थी। मुझे लगता है कि उन्होंने अब थोड़ा "बग" तय कर लिया है, लेकिन अभी भी एक गड़बड़ है। मैंने पाया * * पी समाधान सुरुचिपूर्ण होने के लिए, लेकिन अक्सर प्रोफ़ाइल के लिए मुश्किल है। मैंने जैकेट का इस्तेमाल नहीं किया है , लेकिन मैंने अच्छी बातें सुनी हैं। मैंने समानांतर टूलबॉक्स के अधिक हाल के संस्करणों का भी उपयोग नहीं किया है जो जीपीयू कम्प्यूटेशन का भी समर्थन करते हैं।
मुझे R समानांतर पैकेज के साथ लगभग कोई अनुभव नहीं है।
यह मेरा अनुभव है कि समानांतर कोड C ++ स्तर पर होना चाहिए जहां आपके पास कार्य विघटन और मेमोरी / संसाधन आवंटन के लिए नियंत्रण की बारीक बारीक क्षमता है। मुझे लगता है कि यदि आप उच्च स्तर पर कार्यक्रमों को समानांतर बनाने का प्रयास करते हैं, तो आप अक्सर केवल एक न्यूनतम स्पीडअप प्राप्त करते हैं जब तक कि आपका कोड तुच्छ रूप से विघटित न हो (जिसे डमी-समानांतरवाद भी कहा जाता है)। उन्होंने कहा, आप OpenMP का उपयोग करके C ++ स्तर पर एकल-पंक्ति का उपयोग करके उचित गति प्राप्त कर सकते हैं :
#pragma omp parallel for
अधिक जटिल योजनाओं में सीखने की अवस्था है, लेकिन मुझे वास्तव में पसंद है जहां gpgpu चीजें चल रही हैं। जेएसएम के रूप में इस साल, कुछ लोगों ने आर बोली में जीपीयू के विकास के बारे में बात की थी, इसलिए इसे "गहरे अंत में पैर की उंगलियों" के रूप में बोली जाती है। लेकिन जैसा कि कहा गया है, मेरे पास न्यूनतम अनुभव है - निकट भविष्य में बदलने के लिए।