जूलिया में devectorized कोड लिखने की तरह लगता है। यहां तक कि package भी है जो आपके लिए ऐसा करने का प्रयास करता है।जूलिया में devectorization क्यों प्रोत्साहित किया जाता है?
मेरा प्रश्न है क्यों?
सबसे पहले, उपयोगकर्ता अनुभव पहलू से बात करते हुए, वेक्टरकृत कोड अधिक संक्षिप्त (कम कोड, फिर बग की कम संभावना), अधिक स्पष्ट (इसलिए डीबग करने में आसान), कोड लिखने का अधिक प्राकृतिक तरीका (कम से कम के लिए कोई भी जो वैज्ञानिक कंप्यूटिंग पृष्ठभूमि से आता है, जिसे जूलिया पूरा करने की कोशिश करता है)। vector'vector
या vector'Matrix*vector
जैसे कुछ लिखने में सक्षम होना बहुत महत्वपूर्ण है, क्योंकि यह वास्तविक गणितीय प्रतिनिधित्व के अनुरूप है, और इस तरह वैज्ञानिक कंप्यूटिंग लोग अपने सिर में (नेस्टेड लूप में नहीं) के बारे में सोचते हैं। और मुझे इस तथ्य से नफरत है कि यह लिखने का सबसे अच्छा तरीका नहीं है, और इसे लूप में दोबारा बदलना तेज होगा।
फिलहाल ऐसा लगता है कि तेजी से कोड लिखने के लक्ष्य और संक्षेप/स्पष्ट कोड को लिखने के लक्ष्य के बीच एक संघर्ष है।
दूसरा, इसके लिए तकनीकी कारण क्या है? ठीक है, मैं समझता हूं कि वेक्टरकृत कोड अतिरिक्त अस्थायी बनाता है, आदि, लेकिन वेक्टरकृत फ़ंक्शन (उदाहरण के लिए, broadcast()
, map()
इत्यादि) में उन्हें बहुसंख्यक बनाने की क्षमता है, और मुझे लगता है कि बहुप्रचार का लाभ अस्थायी लोगों के ऊपर से अधिक हो सकता है और वेक्टरकृत कार्यों के अन्य नुकसान उन्हें लूप के लिए नियमित से तेज बनाते हैं।
जूलिया में वेक्टरीकृत कार्यों के वर्तमान कार्यान्वयन क्या हुड के तहत बहुसंख्यक बहुप्रणाली करते हैं?
यदि नहीं, तो वेक्टर किए गए कार्यों के लिए निहित समेकन जोड़ने और उन्हें लूप से तेज़ बनाने के लिए काम/योजनाएं हैं?
स्थिर जूलिया वर्तमान में v0.4 पर है। अधिकांश (सभी?) जिन चीज़ों के बारे में आप पूछ रहे हैं वे v1.0 के लिए रोडमैप पर हैं। तो, दस्तावेज़ों को भी शाब्दिक रूप से न लें। यदि आप वेक्टरकृत कोड लिखना चाहते हैं, तो वेक्टरकृत कोड लिखें। एक विकास लक्ष्य वेक्टरकृत जूलिया के लिए मैटलैब जितना तेज़ होगा। कई परिचालनों के लिए, यह पहले ही हासिल हो चुका है क्योंकि संकलक सही ढंग से व्याख्या करता है कि कौन से बीएलएएस दिनचर्या कॉल करने के लिए। मल्टीथ्रेडिंग के बारे में, मुझे लगता है कि आप कुछ tinkering के साथ बीएलएएस multithreading सक्षम कर सकते हैं, और यह v1.0 द्वारा मूल रूप से होना चाहिए। –
जूलिया के पीछे मूल विकास विवरण "हम लालची हैं"। मूल देवता यह सब कुछ करने के लिए चाहते हैं, और इसे तेजी से करते हैं।भाषा को "दो भाषा की समस्या" को हल करना है, और इस स्तर पर, ऐसा लगता है कि यह v1.0 हिट के समय होगा। –
अंतिम टिप्पणी (मैं वादा करता हूं): जूलिया * में देशी मल्टीथ्रेडिंग * के लिए जिथब मुद्दा पृष्ठ [यहां] है [https://github.com/JuliaLang/julia/issues/1790)। सुनिश्चित नहीं है कि उन्हें v0.5 रिलीज मिलेगा, लेकिन यह निश्चित रूप से रास्ते पर है। जब यह हिट होता है, तो मुझे उम्मीद है कि इसका लाभ उठाने के लिए सभी प्रमुख पैकेज अपडेट किए जाएंगे। –