পাইথনে তারা ইতিমধ্যেই জিআইএল সরানোর এবং আরও ভাল পারফরম্যান্স পাওয়ার প্রস্তাব নিয়ে আলোচনা করেছে

পাইথন লোগো

পাইথন একটি উচ্চ-স্তরের প্রোগ্রামিং ভাষা।

সম্প্রতি এমন খবর ছড়িয়ে পড়েছে পাইথন প্রজেক্ট স্টিয়ারিং কমিটি অনুমোদনের ইচ্ছা প্রকাশ করেছে পাইথন ভাষা সম্প্রসারণের প্রস্তাব «PEP-0703″, CPython-এ গ্লোবাল ইন্টারপ্রেটার লককে ঐচ্ছিক করে তোলে এবং যা মূলত গ্লোবাল ইন্টারপ্রেটার লক (GIL) ছাড়াই CPython কম্পাইল মোডের এমবেডকে সংজ্ঞায়িত করে।

পিইপি -১ ডিফল্টরূপে GIL ব্যবহার বন্ধ করার সংজ্ঞা দেয়, কিন্তু এটি নিষ্ক্রিয় করতে বিল্ড বিকল্প "–সিন-গিল" যোগ করুন। আপনি কেমন আছেনl নতুন মোড সমান্তরালকরণের সাথে সমস্যার সমাধান করবে বলে আশা করা হচ্ছে মাল্টি-কোর সিস্টেমে অপারেশন, গ্লোবাল লক বিভিন্ন থ্রেড থেকে ভাগ করা বস্তুর সমান্তরাল অ্যাক্সেসের অনুমতি দেয় না।

উল্লেখ আছে যে দীর্ঘ মেয়াদে (৫ বছর পর) দোভাষীকে শুধুমাত্র গ্লোবাল নন-লকিং মোডে ডিফল্টরূপে পরিবর্তন করার পরিকল্পনা করা হয়েছে, একই সময়ে GIL এর সাথে কম্পাইল করার জন্য সমর্থন বাদ দিচ্ছে।

নো-জিআইএল প্রস্তাবের সমীক্ষায় সাড়া দেওয়ার জন্য সবাইকে ধন্যবাদ। এটা স্পষ্ট যে সাধারণ ধারণাটি ইতিবাচক, উভয় সাধারণ ধারণার জন্য এবং বিশেষ করে PEP 703-এর জন্য। পরিচালনা পর্ষদও উভয় বিষয়ে ইতিবাচক। আমরা PEP 703 গ্রহণ করতে চাই, যদিও আমরা এখনও গ্রহণের বিশদটি তৈরি করছি।

যেমন আমরা অতীতে কয়েকবার করেছি, আমরা PEP গ্রহণ করার জন্য আমাদের অভিপ্রায়ের সাথে আমাদের বর্তমান চিন্তাভাবনার সাথে গ্রহণের সাথে সম্পর্কিত বিশদ বিবরণের সাথে যোগাযোগ করতে চাই।

এর পাশাপাশি, এটি উল্লেখ করা হয়েছে যে পরিবর্তনগুলি তিনটি পর্যায়ে সম্পন্ন করার পরিকল্পনা করা হয়েছে, যা স্বল্প, মধ্য এবং দীর্ঘমেয়াদী। দেত্তয়া আছে প্রথম পর্যায়ে, ডিফল্টরূপে GIL নিষ্ক্রিয় করা অবাস্তব আবর্জনা সংগ্রাহক, মেমরি ম্যানেজমেন্ট সিস্টেম এবং লকগুলি সংগঠিত করার জন্য আদিম পরিবর্তনের সাথে যুক্ত ওভারহেডের কারণে। উদাহরণস্বরূপ, থ্রেড আইসোলেশনের জন্য রেফারেন্স গণনা ব্যবহারের কারণে, একক-থ্রেডেড স্ক্রিপ্টের জন্য কর্মক্ষমতা হ্রাস পেয়েছে (পাইপারফরমেন্স টেস্ট স্যুটে 10%)। একই সময়ে, বৈজ্ঞানিক কম্পিউটিংয়ে জিআইএল অক্ষম করার প্রয়োজন হতে পারে, যার জন্য কোড এক্সিকিউশনের রৈখিক গতির চেয়ে সমান্তরালকরণের অভাব আরও গুরুতর সমস্যা।

দ্বিতীয় পর্যায়ে, মূলত নিশ্চিতকরণের জন্য অপেক্ষা করা হবে। এবং যাতে সম্প্রদায় থেকে যথেষ্ট সমর্থন আছে "নন-জিআইএল ব্যবহারযোগ্য" এবং নিশ্চিত করুন যে GIL-হীন বিল্ড সমর্থিত কিন্তু ডিফল্ট নয়।

শেষ পর্যায়ে, no-GIL ইতিমধ্যেই ডিফল্ট মান হবে এবং জিআইএল-এর যেকোন অবশেষ মুছে ফেলা হবে (অকারণে পিছনের সামঞ্জস্য ভঙ্গ না করে)।

এটা পর্যবেক্ষণ করা হয় যে GIL থেকে সরে যাওয়ার কাজটি খুব সাবধানে করা হবে যাতে ভুলের পুনরাবৃত্তি না হয় প্রচার করার সময় কি হয়েছিল পাইথন 3: একটি নন-জিআইএল বিল্ডকে পাইথনের পুরানো সংস্করণগুলির সাথে সামঞ্জস্যতা নিশ্চিত করতে হবে এবং নন-জিআইএল বিল্ডগুলিতে কাজ করার জন্য প্রয়োজনীয় যে কোনও তৃতীয়-পক্ষের কোড পরিবর্তনগুলিও জিআইএল বিল্ডগুলিতে কাজ করবে।

নন-জিআইএল বিল্ডগুলির জন্য সংস্করণগুলিকে পাইথন 4-এ পুনরায় নম্বর দেওয়ার কোনও পরিকল্পনা নেই, কারণ তারা ABI সামঞ্জস্য বজায় রাখবে।

পুরো প্রক্রিয়া জুড়ে, আমাদের (প্রধান বিকাশকারীরা, শুধু SC নয়) অগ্রগতি এবং প্রস্তাবিত সময়রেখাগুলি পুনরায় মূল্যায়ন করতে হবে। আমরা চাই না এটি আরেকটি দশ বছরের পশ্চাদপদ সামঞ্জস্যপূর্ণ লড়াই হয়ে উঠুক, এবং আমরা PEP 703 বাতিল করতে সক্ষম হতে চাই এবং যদি এটি সমস্যাযুক্ত বলে মনে হয় তবে অন্য সমাধান খুঁজে পেতে চাই, তাই আমাদের নিয়মিতভাবে পরীক্ষা করতে হবে যে অব্যাহত কাজটি মূল্যবান।

আমরা আশা করি এটি PEP এর ভবিষ্যত সম্পর্কে কিছু স্পষ্টতা প্রদান করবে কারণ আমরা গ্রহণযোগ্যতার সঠিক বিবরণ বের করি। এসসি আগামী সপ্তাহে গ্রহণযোগ্যতা চূড়ান্ত করতে কাজ করবে।

নন-জিআইএল বিল্ডগুলিতে সম্পূর্ণ রূপান্তর করার আগে, আমরা এই বিল্ডগুলির জন্য সম্পূর্ণ সম্প্রদায় সমর্থন অর্জনের পাশাপাশি বিদ্যমান কোডে নিরাপদ মাল্টিথ্রেডিং সক্ষম করতে অতিরিক্ত C API এবং Python API প্রদান করার পরিকল্পনা করি।

পরিশেষে, ইতিমধ্যে উল্লিখিত হিসাবে, আশা করা হচ্ছে যে তৃতীয় পর্যায়ে স্থানান্তরটি কমপক্ষে 5 বছরের মধ্যে ঘটতে পারে এবং PEP-0703-এর সম্ভাব্য তারিখ হল Python 3.13-এর মুক্তি, পরবর্তী শরতের জন্য নির্ধারিত।

যদি হয় এটি সম্পর্কে আরও জানতে আগ্রহী, আপনি বিশদ পরীক্ষা করতে পারেন নীচের লিঙ্কে।


পছন্দের উৎস হিসেবে যোগ করুন