2017-12-07 43 views
5

है मैंने जूलिया और उसके प्रदर्शन पर कई लेख पढ़े हैं। लेकिन जहां कहीं भी, मुझे इस बारे में सुराग मिल सकता है कि जुलीया टीम ने मैट्रिक्स परिचालनों के लिए कॉलम प्रमुख का उपयोग करने का फैसला क्यों किया। ऐसा इसलिए है क्योंकि मैट्रिक्स पर ऑपरेटिंग का तीसरा तरीका कॉलम प्रमुख या कुछ पर फिट बैठता है।जूलिया कॉलम प्रमुख का उपयोग क्यों करता है? क्या यह तेज़

अग्रिम धन्यवाद।

+0

क्यों डीएनए सर्पिल इस तरह से और अन्य नहीं करता है? निर्णय ज्यादातर कुछ ऐतिहासिक समरूपता के कारण होता है जो थोड़ा स्विचिंग लागत के साथ तोड़ता है –

+0

मुझे वास्तव में डीएनए के बारे में पता नहीं है। लेकिन हां प्रदर्शन में यह सी के समान कम या कम काम करता था, इसलिए मुझे लगा कि एक कारण हो सकता है कि उन्होंने स्तंभ प्रमुख को चुनने के बजाय पंक्ति प्रमुख क्यों चुना? –

+1

अधिकतर गणनाओं को ट्रांसफर किए गए सभी चर के साथ फिर से लिखा जा सकता है। यह पंक्तियों को स्तंभों में बदल देगा। चुना गया क्रम दूसरे के मुकाबले एक तरफ एक वेक्टर द्वारा गुणा करके गुणा करता है और एक बार जब आप पसंद करते हैं, तो आपको अपने एल्गोरिदम में शेष गणनाओं के लिए पसंद का प्रचार करना चाहिए। विशेष रूप से, 'w * ए' गुणा करना 'ए * v' से धीमा है। तो जवाब है: लोग 'ए * वी' –

उत्तर

0

"। जूलिया में बहुआयामी सरणियों स्तंभ-प्रमुख क्रम में जमा हो जाती है इसका मतलब है कि सरणियों एक समय में एक स्तंभ खड़ी दिखती हैं इस vec समारोह या सिंटेक्स के उपयोग से सत्यापित किया जा सकता है। [:] ..."

"फोरट्रान, मैटलैब, और आर (कुछ नामों के लिए) जैसी कई भाषाओं में सरणी को ऑर्डर करने के लिए यह सम्मेलन आम है। कॉलम-प्रमुख ऑर्डरिंग का विकल्प पंक्ति-प्रमुख क्रम है, जो कि सी और पायथन द्वारा अपनाया गया सम्मेलन है (numpy) अन्य भाषाओं के बीच। "

उदाहरण और प्रदर्शन मतभेद की चर्चा के लिए

https://docs.julialang.org/en/latest/manual/performance-tips/

+1

: "Arrays स्मृति में संगत रूप से संग्रहीत हैं, स्वयं को सीपीयू वेक्टरिज़ेशन को उधार देते हैं और कैशिंग के कारण कम मेमोरी एक्सेस करते हैं। ये वही कारण हैं जिन्हें कॉलम-प्रमुख ऑर्डर (ऊपर देखें) में सरणी एक्सेस करने की अनुशंसा की जाती है। " –

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