← नवीनतम पेपर
💻 computer science

Concurrent Scheduling of High-Level Parallel Programs on Multi-GPU Systems

यह शोध पत्र मल्टी-जीपीयू सिस्टम पर SYCL प्रोग्रामों के लिए जटिल मेमोरी और संचार विश्लेषण को क्रिटिकल पाथ से बाहर निकालने हेतु सेलेरिटी (Celerity) रनटाइम के भीतर इंस्ट्रक्शन ग्राफ शेड्यूलिंग को प्रस्तुत करता है, जो समवर्ती निष्पादन (concurrent execution) और अनुकूलित मेमोरी आवंटन को सक्षम बनाता है जो 128 जीपियू तक स्ट्रॉन्ग स्केलिंग प्राप्त करता है।

मूल लेखक: Peter Thoman, Fabian Knorr, Philip Salzmann

प्रकाशित 2026-09-14
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Peter Thoman, Fabian Knorr, Philip Salzmann

मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

आधुनिक सुपरकंप्यूटर अब केवल कुछ दशक पहले की मशीनों के तेज़ संस्करण मात्र नहीं रह गए हैं; वे हजारों विशिष्ट प्रोसेसरों का एक विशाल संग्रह हैं जो एक साथ मिलकर काम करते हैं। इन विशाल प्रणालियों का अधिकतम लाभ उठाने के लिए, वैज्ञानिक ऐसे सॉफ़्टवेयर पर भरोसा करते हैं जो स्वचालित रूप से यह तय कर सके कि गणना का कौन सा हिस्सा किस प्रोसेसर को जाएगा और उनके बीच डेटा कैसे स्थानांतरित होगा। यह एक कठिन कार्य है क्योंकि सॉफ़्टवेयर को वास्तविक काम को धीमा किए बिना मेमोरी और संचार (communication) का प्रबंधन करना होता है। यदि सिस्टम यह तय करने में बहुत अधिक समय बिताता है कि डेटा कहाँ रखना है या उसे सुसंगत कैसे रखना है, तो शक्तिशाली प्रोसेसर खाली बैठे रहते हैं, जिससे ऊर्जा और समय दोनों बर्बाद होते हैं। चुनौती इन निर्णयों को इतनी तेज़ी से लेने की है कि कंप्यूटर कभी सोचने के लिए न रुके, जिससे काम का प्रवाह नदी के प्रवाह की तरह सुचारू बना रहे।

इनब्रोक विश्वविद्यालय (University of Innsbruck) के शोधकर्ताओं ने कई ग्राफिक्स प्रोसेसिंग यूनिट्स (GPUs) से लैस प्रणालियों के लिए इस शेड्यूलिंग समस्या को संभालने का एक नया तरीका विकसित किया है। ये चिप्स भारी मात्रा में समानांतर (parallel) कार्य को संभालने के लिए डिज़ाइन किए गए हैं, लेकिन सैकड़ों को समन्वित करने के लिए एक परिष्कृत प्रबंधक की आवश्यकता होती है। टीम ने 'इंस्ट्रक्शन-ग्राफ शेड्यूलिंग' नामक एक विधि पेश की है, जो कंप्यूटर द्वारा किए जाने वाले प्रत्येक एकल ऑपरेशन के विस्तृत, निम्न-स्तरीय मानचित्र (low-level map) के रूप में कार्य करती है। प्रत्येक चरण की आवश्यकता होने पर मौके पर निर्णय लेने के बजाय, सिस्टम एक पूर्ण योजना बनाता है जिसमें मेमोरी आवंटन, डेटा स्थानांतरण और वास्तविक गणना शामिल होती है। यह योजना तब बनाई जाती है जब कंप्यूटर पहले से चल रहे पिछले कार्यों पर काम कर रहा होता है, जिससे प्रभावी रूप से शेड्यूलर को वर्तमान प्रवाह में बाधा डाले बिना अगले चरणों की तैयारी करने के लिए आगे देखने (look ahead) की अनुमति मिलती है।

इस दृष्टिकोण का मूल आधार यह है कि सॉफ़्टवेयर काम को किस तरह देखता है। पहले, सिस्टम कार्यों की एक उच्च-स्तरीय सूची तैयार करता था और फिर केवल तभी विशिष्ट विवरणों, जैसे मेमोरी कॉपी करना, का पता लगाता था जब उन्हें निष्पादित करने का समय आता था। इससे अक्सर देरी होती थी क्योंकि गणना के बीच में ही सिस्टम को निर्भरताओं (dependencies) का विश्लेषण करने के लिए रुकना पड़ता था। नई विधि प्रत्येक कार्य को उसके सबसे छोटे घटकों में तोड़ देती है, जैसे कि मेमोरी का एक विशिष्ट ब्लॉक आवंटित करना या किसी पड़ोसी प्रोसेसर को डेटा का एक छोटा टुकड़ा भेजना। इन छोटे कदमों को एक एकल, परस्पर जुड़े ग्राफ में व्यवस्थित करके, सिस्टम देख सकता है कि कौन से कदम एक साथ हो सकते हैं। यह कंप्यूटर को गणना के साथ संचार को ओवरलैप करने की अनुमति देता है, जिसका अर्थ है कि डेटा प्रोसेसरों के बीच तब घूम सकता है जब चिप्स नंबरों को क्रंच करने में व्यस्त हों, न कि एक के खत्म होने का इंतज़ार करने के बाद शुरू होता है।

इस विचार का परीक्षण करने के लिए, शोधकर्ताओं ने अपने सिस्टम को 'सेलेरिटी' (Celerity) नामक एक सॉफ़्टवेयर फ्रेमवर्क में एकीकृत किया, जिसे GPU क्लस्टर्स पर जटिल सिमुलेशन चलाने के लिए डिज़ाइन किया गया है। उन्होंने यह देखने के लिए तीन अलग-अलग वैज्ञानिक अनुप्रयोगों को चलाया कि उनका नया शेड्यूलर मानक संस्करण की तुलना में कैसा प्रदर्शन करता है। एक अनुप्रयोग ने अरबों कणों के बीच गुरुत्वाकर्षण खिंचाव का अनुकरण किया, दूसरे ने यह मॉडल किया कि ध्वनि कमरे में कैसे उछलती है, और तीसरे ने माध्यम के माध्यम से तरंगों के प्रसार को ट्रैक किया। प्रत्येक मामले में, उन्होंने यह मापा कि अधिक GPU जोड़ने पर प्रोग्राम कितनी तेज़ी से चला, जिसे 'स्ट्रॉन्ग स्केलिंग' (strong scaling) कहा जाता है। परिणामों ने दिखाया कि नया दृष्टिकोण लगातार बेसलाइन सिस्टम से बेहतर प्रदर्शन करता है, विशेष रूप से जब प्रोसेसरों की संख्या बढ़ती है। 128 GPU वाले सिस्टम पर, नए शेड्यूलर ने कमरे के सिमुलेशन वाले अनुप्रयोग को पुराने तरीके की तुलना में दोगुने से अधिक तेज़ चलने दिया, जबकि कण सिमुलेशन में भी गति में महत्वपूर्ण वृद्धि देखी गई।

इस कार्य में एक प्रमुख नवाचार 'शेड्यूलर लुकअहेड' (scheduler lookahead) नामक तकनीक है, जो मेमोरी उपयोग से संबंधित एक विशिष्ट समस्या को हल करती है। कई सिमुलेशन में, एक प्रोग्राम को स्टोर करने के लिए आवश्यक डेटा की मात्रा एक चरण से दूसरे चरण में बदल सकती है। इन परिवर्तनों की भविष्यवाणी करने के तरीके के बिना, सॉफ़्टवेयर एक छोटा मेमोरी ब्लॉक आवंटित कर सकता है, और क्षण भर बाद पाता है कि यह बहुत छोटा है, जिससे उसे एक बड़ा ब्लॉक आवंटित करने और सारा डेटा वहां कॉपी करने के लिए मजबूर होना पड़ता है। यह रीसाइज़िंग (resizing) प्रक्रिया धीमी है और कीमती समय बर्बाद कर सकती है। नया सिस्टम आगामी कार्यों को देखकर यह पता लगाता है कि क्या मेमोरी की आवश्यकताएं बढ़ रही हैं। यदि यह एक पैटर्न का पता लगाता है जहाँ डेटा का आकार बढ़ेगा, तो यह अंतिम आवश्यक आकार का पता चलने तक मेमोरी आवंटित करने के लिए प्रतीक्षा करता है, जिससे महंगी रीसाइज़िंग प्रक्रिया पूरी तरह से बच जाती है। यह उन अनुप्रयोगों के लिए विशेष रूप से प्रभावी है जहाँ डेटा लगातार बढ़ता है, जिससे सिस्टम एक बार में ही सही मात्रा में मेमोरी आवंटित कर पाता है।

शोधकर्ताओं ने एक सिस्टम आर्किटेक्चर भी बनाया जो योजना बनाने के काम को करने के काम से अलग करता है। उन्होंने एक समर्पित थ्रेड (dedicated thread), या निष्पादन की एक अलग रेखा बनाई, जो विशेष रूप से इन विस्तृत इंस्ट्रक्शन ग्राफों को बनाने के लिए जिम्मेदार है। इस बीच, अन्य थ्रेड्स GPU पर निर्देशों के वास्तविक निष्पादन को संभालते हैं। यह अलगाव सुनिश्चित करता है कि अगले चरणों की योजना बनाने की प्रक्रिया वर्तमान चरणों के निष्पादन में बाधा न डाले। दोनों प्रक्रियाएं साथ-साथ चलती हैं, जो एक सुव्यवस्थित कतार (queue) के माध्यम से सूचनाओं का आदान-प्रदान करती हैं जो योजनाकार से निष्पादक (executor) को निर्देश भेजती है। यह डिज़ाइन सिस्टम द्वारा प्रतीक्षा में बिताए जाने वाले समय को कम करता है, यह सुनिश्चित करता है कि GPU उपयोगी काम के साथ व्यस्त रहें, न कि यह सोचने में खाली बैठें कि आगे क्या करना है।

प्रयोग इटली में स्थित 'लियोनार्डो' (Leonardo) सुपरकंप्यूटर पर किए गए थे, जो हजारों प्रोसेसरों और हाई-स्पीड कनेक्शनों वाली मशीन है। टीम ने वास्तविक दुनिया के वैज्ञानिक कोड का उपयोग किया ताकि यह सुनिश्चित हो सके कि उनके निष्कर्ष व्यावहारिक परिदृश्यों में टिक सकें। उन्होंने पाया कि हालांकि नई विधि ने डेटा स्टोर करने की मौलिक सीमाओं या समस्या के आकार को नहीं बदला, लेकिन इसने उस काम के वितरण की दक्षता में काफी सुधार किया। सुधार उन अनुप्रयोगों में सबसे अधिक स्पष्ट थे जहाँ डेटा एक्सेस पैटर्न जटिल या बदलते हुए थे, क्योंकि सिस्टम संचार और मेमोरी प्रबंधन पर लगने वाले समय को बेहतर ढंग से छिपा सकता था। बहुत छोटे गणना चरणों वाले अनुप्रयोगों के लिए, नए शेड्यूलर ने ओवरहेड को इतना कम कर दिया कि बड़ी संख्या में प्रोसेसरों के साथ भी सिस्टम कुशलतापूर्वक स्केल कर सका।

यह कार्य प्रदर्शित करता है कि सुपरकंप्यूटर के आंतरिक लॉजिस्टिक्स को प्रबंधित करने का तरीका हार्डवेयर की कच्ची शक्ति (raw power) जितना ही महत्वपूर्ण है। योजना बनाने के भारी काम को क्रिटिकल पाथ से बाहर निकालकर एक समानांतर प्रक्रिया में ले जाकर, शोधकर्ताओं ने दिखाया है कि इन विशाल मशीनों को उनके चरम दक्षता पर चलाने के लिए यह संभव है। इंस्ट्रक्शन-ग्राफ दृष्टिकोण आधुनिक समानांतर प्रोग्रामों में मौजूद जटिल निर्भरताओं के जाल को देखने और प्रबंधित करने का एक तरीका प्रदान करता है, जो कभी बाधा (bottleneck) हुआ करता था, उसे एक सुव्यवस्थित पाइपलाइन में बदल देता है। जैसे-जैसे सुपरकंप्यूटर आकार और जटिलता में बढ़ते जा रहे हैं, इस तरह की तकनीकें यह सुनिश्चित करने के लिए आवश्यक होंगी कि वैज्ञानिक अपने निवेश का अधिकतम लाभ उठा सकें, जिससे वे उन समस्याओं को हल करने में सक्षम हो सकें जो पहले बहुत बड़ी या बहुत धीमी थीं।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →