1 पॉइंट द्वारा GN⁺ 2023-08-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Python Global Interpreter Lock (GIL) कई threads इस्तेमाल करने वाले प्रोग्रामों की performance बढ़ाने में लंबे समय से एक बड़ा अवरोध रहा है.
  • अक्टूबर 2021 में Sam Gross ने GIL-रहित Python का एक proof-of-concept version पेश किया, लेकिन शुरुआती उत्साह के बाद एक साल से अधिक समय तक कोई बड़ी प्रगति नहीं हुई.
  • Python Steering Council ने अब no-GIL feature को integrate करने की इच्छा जाहिर की है.
  • 2021 के मध्य में शुरू हुआ Faster CPython project, Python interpreter की single-thread performance सुधारने पर केंद्रित है.
  • इस साल PyCon में Faster CPython टीम के दो सदस्यों ने interpreter performance बेहतर करने के लिए अपनाई गई रणनीतियाँ प्रस्तुत कीं.
  • जनवरी 2023 में core developer Łukasz Langa ने Gross द्वारा लिखे गए PEP 703 ("CPython में Global Interpreter Lock का वैकल्पिक उपयोग") का पहला version प्रकाशित किया.
  • Python community, Python 2 से 3 में हुए अव्यवस्थित transition जैसी स्थिति से बचना चाहती है. GIL हटाने वाले किसी भी बदलाव को ऐसे code के साथ compatible होना होगा जो इसके लिए तैयार नहीं है.
  • 14 जून को Faster CPython टीम ने no-GIL feature पर निर्णय लेने के लिए दबाव बढ़ाया.
  • 28 जुलाई को council member Thomas Wouters ने घोषणा की कि council ने PEP 703 स्वीकार कर लिया है, हालांकि स्वीकृति के विवरण अभी तय किए जा रहे हैं.
  • योजना यह है कि पहले interpreter का no-GIL version लाया जाए ताकि सभी missing components की पहचान हो सके, फिर उन्हें ठीक करने के बाद no-GIL को Python का default और अंतिम version बनाया जाए.
  • no-GIL version में transition होने में लगभग 5 साल लगने की उम्मीद है, और अतीत की गलतियाँ न दोहराने का वादा किया गया है.
  • इस लेख में .NET की parallel programming का उपयोग करके, जब डेटा "embarrassingly parallel" हो, तब for/foreach loops को तेज़ करने के तरीकों पर चर्चा की गई है.
  • लेख में Python की single-thread performance को लंबे समय तक बनाए रखने की व्यवहार्यता पर भी चर्चा है; कुछ लोगों का तर्क है कि अपरिहार्य overhead और बढ़ती complexity अंततः performance घटा सकते हैं.
  • लेख Python 2 से Python 3 में हुए उस transition पर भी विचार करता है जिसमें दोनों versions के बीच compatibility नहीं थी.
  • लेखक का कहना है कि Python 3 के Python 2 के साथ incompatible प्रभावों का अनुमान कुछ लोगों ने पहले ही लगा लिया था; यह लोकप्रिय धारणा के विपरीत है, और वह 2007 की एक blog post का link साझा करते हैं.
  • लेखक Python 2 से Python 3 transition से सीखे गए सबकों के महत्व पर ज़ोर देता है, ताकि भविष्य में ऐसे ही मुद्दों से बचा जा सके.
  • लेख का निष्कर्ष उन लोगों की दूरदर्शिता को स्वीकार करते हुए होता है जिन्होंने Python 2 से Python 3 transition की चुनौतियों का पहले से अनुमान लगाया था.

1 टिप्पणियां

 
GN⁺ 2023-08-19
Hacker News राय
  • Global Interpreter Lock (GIL) को हटाने और CPython को तेज़ बनाने वाले प्रोजेक्ट पर लेख की चर्चा।
  • कुछ टिप्पणीकारों का मानना है कि लेख GIL हटाने के फ़ायदों पर पर्याप्त ज़ोर नहीं देता और "anti-GIL" पक्ष की ओर ज़्यादा झुका हुआ है।
  • Sam Gross के no-GIL प्रोजेक्ट पर किए गए काम की उसकी उच्च गुणवत्ता और performance improvements लाने के लिए प्रशंसा की जाती है।
  • कम्युनिटी ने इस प्रोजेक्ट में गहरी रुचि दिखाई है, और steering council इससे जुड़े प्रस्ताव PEP 703 को स्वीकार करने की योजना बना रही है।
  • कुछ टिप्पणीकारों ने चिंता जताई है कि GIL हटाने का multi-threaded Python code पर नकारात्मक प्रभाव पड़ सकता है।
  • प्रोजेक्ट को test mode में आगे बढ़ाने का निर्णय उचित लगता है, लेकिन अगर संभावित bugs और कठिनाइयाँ आती हैं तो अधिक resources की ज़रूरत होगी, ऐसी चिंता है।
  • कुछ टिप्पणीकारों का मानना है कि GIL हटाना एक गलती है, क्योंकि इससे performance penalty आ सकती है और दूसरे संभावित improvements की गुंजाइश कम हो सकती है।
  • अन्य लोगों ने single-thread performance को प्राथमिकता देने और memory sharing के लिए स्पष्ट mechanism वाले virtual processes जोड़ने का सुझाव दिया है।
  • Sam Gross द्वारा प्रोजेक्ट को आगे बढ़ाने की सराहना की गई है, और भले ही no-GIL Python तक का रास्ता लंबा और कठिन हो, इसे एक सकारात्मक प्रगति माना जा रहा है।
  • मौजूदा codebase की correctness सुनिश्चित करने और GIL/no-GIL को compile-time switch बनाने से maintenance cost बढ़ने को लेकर चिंताएँ हैं।
  • Python कम्युनिटी की transparency और अच्छे governance की प्रशंसा की गई है, लेकिन Python से निकाले जाने वाले मूल्य को देखते हुए tech industry से अधिक समर्थन की माँग भी उठी है।
  • कुछ टिप्पणीकारों ने इस संभावना की स्वीकार्यता पर सवाल उठाया है कि इस प्रोजेक्ट के परिणामस्वरूप single-threaded code 15-20% धीमा हो सकता है।