2009-03-29 6 views
26

Google पाइथन की गति को 5x तक बढ़ाने के लिए ओपन सोर्स प्रोजेक्ट को प्रायोजित कर रहा है।एलएलवीएम क्या है और एलएलवीएम की बढ़ती गति 5x के साथ पाइथन वीएम को कैसे बदल रहा है?

Unladen-Swallow एक good project plan

क्यों इस तरह के एक कठिन समस्या संगामिति है लगता है?
क्या एलएलवीएम समवर्ती समस्या को हल करने जा रहा है?
हार्डवेयर उन्नति के लिए मल्टी-कोर के अलावा अन्य समाधान हैं?

+2

यह एक प्रश्न नहीं है। मैं कम से कम तीन, संभवतः चार देखता हूं। –

+0

क्या आप मुझसे सभी अलग-अलग प्रश्न पूछेंगे? वे सभी एक तरह से संबंधित हैं। क्या वे नहीं हैं :) –

+0

"Py3k ने मेमोरी फुटप्रिंट समस्या हल की है (सूचियों की तुलना में iterators लौटने से); अब यदि एलएलवीएम गति मुद्दा हल करता है?" प्रश्न क्या है? कुछ प्रकार के अंतर्निहित प्रश्न हैं ... लेकिन यह स्पष्ट नहीं है कि यह क्या है। और हाँ, यहां एक में बहुत सारे प्रश्न हैं! – TofuBeer

उत्तर

32

LLVM एक साथ कई चीजें हैं - वर्चुअल मशीन/ऑप्टिमाइज़िंग कंपाइलर की तरह, विभिन्न फ्रंटेंड के साथ संयुक्त जो एक विशेष भाषा में इनपुट लेती है और परिणामस्वरूप मध्यवर्ती भाषा में परिणाम देती है। यह इंटरमीडिएट आउटपुट आभासी मशीन के साथ चलाया जा सकता है, या एक स्टैंडअलोन निष्पादन योग्य उत्पन्न करने के लिए इस्तेमाल किया जा सकता है।

समेकन के साथ समस्या यह है कि, हालांकि यह वैज्ञानिक कंप्यूटिंग में लंबे समय तक उपयोग किया जाता था, लेकिन यह हाल ही में उपभोक्ता ऐप्स में आम हो गया है। इसलिए जब यह व्यापक रूप से ज्ञात है कि महान प्रदर्शन प्राप्त करने के लिए वैज्ञानिक गणना कार्यक्रम कैसे प्रोग्राम किया जाए, तो मेल उपयोगकर्ता एजेंट/शब्द प्रोसेसर लिखना पूरी तरह से अलग बात है जो समरूपता में अच्छा हो सकता है। इसके अलावा, वर्तमान ओएस के अधिकांश को एक प्रोसेसर के साथ दिमाग में डिजाइन किया जा रहा था, और वे मल्टीकोर प्रोसेसर के लिए पूरी तरह से तैयार नहीं हो सकते हैं।

समेकन के संबंध में एलएलवीएम का लाभ यह है कि आपके पास मध्यवर्ती आउटपुट है, और यदि भविष्य में समेकन में प्रगति होती है, तो अपने दुभाषिया को अपडेट करके आप तुरंत उन सभी लाभों को एलएलवीएम-संकलित कार्यक्रमों में प्राप्त करते हैं। यदि आप एक स्टैंडअलोन निष्पादन योग्य के लिए संकलित किया गया है तो यह इतना आसान नहीं है। तो एलएलवीएम प्रति समेकन समस्या को हल नहीं करता है लेकिन यह भविष्य में वृद्धि के लिए एक खुला दरवाजा छोड़ देता है।

निश्चित रूप से क्वांटम कंप्यूटर, जेनेटिक्स कंप्यूटर इत्यादि जैसे हार्डवेयर के लिए अधिक संभावित प्रगति हैं, लेकिन हमें उनके लिए वास्तविकता बनने की प्रतीक्षा करनी है।

+3

@ इस्माइल के लिए उपयुक्त है: मुझे नहीं लगता कि यह वैज्ञानिक बनाम गैर-वैज्ञानिक अनुप्रयोगों का मामला है। असली मुद्दा भाषा है और समवर्ती प्रोग्रामिंग के लिए ओएस समर्थन खराब है, और कुछ लोग सहमति के लिए बुरे समर्थन को दूर करने के लिए कड़ी मेहनत करने के लिए तैयार हैं। –

+0

@ लॉट: हाँ, आप सही हैं। यद्यपि समेकन के साथ कार्यक्रम के लिए उपकरण हैं, लेकिन उन्हें उपयोग करना मुश्किल है और उन्हें एक महत्वपूर्ण प्रयास की आवश्यकता होगी। – Ismael

17

एलएलवीएम पर स्विच स्वयं को समेकन समस्या को हल नहीं कर रहा है। Global Interpreter Lock से छुटकारा पाने के द्वारा इसे अलग से हल किया जा रहा है।

मुझे यकीन नहीं है कि मैं इसके बारे में कैसा महसूस करता हूं; मैं मुख्य रूप से ब्लॉकिंग I/O से निपटने के लिए धागे का उपयोग करता हूं, मल्टीकोर प्रोसेसर का लाभ नहीं लेता (इसके लिए, मैं अलग प्रक्रियाओं को बढ़ाने के लिए multiprocessing मॉड्यूल का उपयोग करता हूं)।

तो मैं जीआईएल की तरह हूं; यह मुश्किल सिंक्रनाइज़ेशन मुद्दों के बारे में सोचने के लिए मेरे जीवन को बहुत आसान बनाता है।

+9

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

15

एलएलवीएम कोड पीढ़ी के नट-किरकिरा का ख्याल रखता है, इसलिए यह उन्हें साइको को फिर से लिखने देता है जो अधिक सामान्य, पोर्टेबल, रखरखाव योग्य है। इसके बदले में उन्हें सीपीथॉन कोर को फिर से लिखने की अनुमति मिलती है, जो उन्हें वैकल्पिक जीसी और अन्य चीजों के साथ प्रयोग करने की अनुमति देता है जो कि सहमति के लिए पायथन के समर्थन को बेहतर बनाने के लिए आवश्यक हैं।

दूसरे शब्दों में, एलएलवीएम समवर्ती समस्या को हल नहीं करता है, यह सिर्फ आपके हाथों को मुक्त करता है ताकि आप इसे हल कर सकें।

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

  • कोई संबंधित समस्या नहीं^_^