Parallelizing SIR Epidemic Spread Simulation Using Pthreads, OpenMP, and MPI
यह शोध पत्र एक 2D ग्रिड पर एक गणनात्मक रूप से गहन SIR महामारी सिमुलेशन को समानांतर करने में Pthreads, OpenMP और MPI के प्रदर्शन का मूल्यांकन करता है, जो यह प्रदर्शित करता है कि सिंक्रोनाइज़ेशन और मेमोरी कंटेंशन ओवरहेड्स के कारण OpenMP और Pthreads में देखे गए मध्यम और सीमित स्केलिंग की तुलना में MPI बड़े ग्रिड के लिए बेहतर स्पीडअप और निकट-रैखिक (near-linear) स्केलिंग प्राप्त करता है।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
एक विशाल, अदृश्य शहर की कल्पना करें जहाँ लाखों नन्हे नागरिक एक ग्रिड में रहते हैं, जिनमें से प्रत्येक एक एकल वर्ग (स्क्वायर) पर कब्जा करता है। इस शहर में, बीमारी हवा या पानी के माध्यम से नहीं, बल्कि एक पड़ोसी को छूने से फैलती है। यदि कोई स्वस्थ व्यक्ति किसी बीमार व्यक्ति को छूता है, तो उसे बीमारी लग सकती है। यदि वे बीमार हैं, तो वे अंततः ठीक हो सकते हैं और प्रतिरक्षित (इम्यून) हो सकते हैं। वैज्ञानिक इस तरह के प्रसार को समझने के लिए कंप्यूटर मॉडल का उपयोग करते हैं, जिससे सार्वजनिक स्वास्थ्य अधिकारियों को यह समझने में मदद मिलती है कि एक वास्तविक आबादी के माध्यम से बीमारी कैसे आगे बढ़ सकती है। चुनौती यह है कि ये सिमुलेशन अविश्वसनीय रूप से भारी काम हैं। एक राष्ट्रीय प्रकोप की स्पष्ट तस्वीर पाने के लिए, कंप्यूटर को सैकड़ों दिनों तक, दिन-दर-दिन, ग्रिड के हर एक व्यक्ति की स्थिति को अपडेट करना पड़ता है। इसे एक मानक कंप्यूटर पर एक समय में एक कदम करके करने में बहुत अधिक समय लग सकता है जो आपात स्थिति में उपयोगी नहीं होगा।
यहीं पर शोधकर्ता आमना अतीक का काम आता है। उन्होंने समानांतर कंप्यूटिंग (पैरेलल कंप्यूटिंग) की शक्ति का उपयोग करके इन सिमुलेशन को तेज़ बनाने के तरीके पर काम किया। एक ही प्रोसेसर को सारा भारी काम करने के लिए कहने के बजाय, उन्होंने कई प्रोसेसरों के बीच काम को विभाजित करने के तरीकों की खोज की, ठीक वैसे ही जैसे श्रमिकों की एक बड़ी टीम एक विशाल भित्ति चित्र (म्यूरल) को विभिन्न खंडों में विभाजित करती है ताकि हर कोई एक साथ अपना हिस्सा पेंट कर सके। उनका अध्ययन एक विशिष्ट प्रकार के मॉडल पर केंद्रित था जिसे SIR मॉडल कहा जाता है, जो तीन समूहों को ट्रैक करता है: वे जो बीमारी के प्रति संवेदनशील (ससेप्टिबल) हैं, वे जो संक्रमित हैं, और वे जो ठीक (रिकवर) हो चुके हैं। लक्ष्य यह देखना था कि काम को विभाजित करने का कौन सा तरीका कंप्यूटर के लिए संभालने में सबसे कुशल है।
अतीक ने इस श्रमिकों की टीम को व्यवस्थित करने के लिए तीन अलग-अलग दृष्टिकोणों का परीक्षण किया। पहला तरीका, जिसे Pthreads के रूप में जाना जाता है, ग्रिड को क्षैतिज पट्टियों (होरिजोंटल स्ट्रिप्स) में विभाजित करता है, प्रत्येक पट्टी को एक ही कंप्यूटर के भीतर निष्पादन के विभिन्न थ्रेड्स को सौंप देता है। दूसरा तरीका, जिसे OpenMP कहा जाता है, उपलब्ध प्रोसेसरों के बीच ग्रिड की पंक्तियों को स्वचालित रूप से विभाजित करने के लिए सरल निर्देशों का उपयोग करता है। तीसरा दृष्टिकोण, MPI है, जो उन वितरित प्रणालियों (डिस्ट्रीब्यूटेड सिस्टम्स) के लिए डिज़ाइन किया गया है जहाँ कई कंप्यूटर या प्रोसेसर एक-दूसरे को संदेश भेजकर संवाद करते हैं, जिससे वे पूरे मानचित्र पर संक्रमण के सही प्रसार को सुनिश्चित करने के लिए अपने सौंपे गए ग्रिड खंडों के किनारों (एजेस) को आपस में साझा करते हैं।
सिमुलेशन के परिणामों ने प्रत्येक विधि के प्रदर्शन में स्पष्ट अंतर प्रकट किया। जब शोधकर्ताओं ने एक हजार गुणा एक हजार लोगों के ग्रिड पर सिमुलेशन चलाया, तो एक सौ टाइम स्टेप्स के लिए, मानक सिंगल-थ्रेडेड दृष्टिकोण को पूरा होने में लगभग 1.58 सेकंड लगे। चार-कोर मशीन पर Pthreads विधि का उपयोग करने पर, समय कम हो गया, लेकिन गति में सुधार सीमित था। श्रमिक अपने खंडों को पूरा करने के बाद एक-दूसरे का इंतज़ार करने में बहुत अधिक समय बिता रहे थे और वे कभी-कभी एक-दूसरे के मेमोरी स्पेस में हस्तक्षेप कर रहे थे, जिससे काम धीमा हो रहा था। OpenMP विधि ने थोड़ा बेहतर प्रदर्शन किया, जिसने कार्य को 0.7 सेकंड से कम समय में पूरा किया, लेकिन इसने भी तब बाधा महसूस की जब अधिक प्रोसेसर जोड़े गए, जिसका मुख्य कारण प्रत्येक दिन के अंत में श्रमिकों के बीच तालमेल (सिंक्रोनाइज़ेशन) बिठाने में लगने वाला समय था।
सबसे सफल दृष्टिकोण MPI विधि था। ग्रिड को अलग-अलग टुकड़ों के संग्रह के रूप में मानकर, जो केवल अपनी सीमाओं पर संवाद करते हैं, इस विधि ने उल्लेखनीय रूप से बेहतर प्रदर्शन किया। जब शोधकर्ताओं ने प्रोसेसरों की संख्या बढ़ाकर आठ कर दी, तो सिमुलेशन मूल सिंगल-थ्रेडेड संस्करण की तुलना में छह गुना से अधिक तेज़ चला। ऐसा इसलिए हुआ क्योंकि प्रोसेसरों के बीच संदेश भेजने में लगने वाला समय प्रत्येक खंड के भीतर लोगों की स्वास्थ्य स्थिति की गणना करने में लगने वाले समय की तुलना में बहुत कम था। जबकि अन्य विधियाँ एक ही मशीन पर कई श्रमिकों के समन्वय के बोझ से जूझ रही थीं, मैसेज-पासिंग दृष्टिकोण ने श्रमिकों को उनके अपने कार्यों पर केंद्रित रखा, और वे केवल अपने क्षेत्रों के किनारों के बारे में आवश्यक जानकारी साझा करने के लिए ही संक्षिप्त रूप से रुकते थे।
अध्ययन ने एक विधि चुनने में शामिल समझौतों (ट्रेड-ऑफ) पर भी प्रकाश डाला। मैसेज-पासिंग दृष्टिकोण के लिए सबसे जटिल कोड और सावधानीपूर्वक योजना की आवश्यकता थी ताकि यह सुनिश्चित किया जा सके कि ग्रिड के टुकड़े सही ढंग से भेजे और प्राप्त किए जाएं और कहीं अटक न जाएं। स्वचालित विभाजन विधि लिखने में सबसे आसान थी लेकिन इसने गति में सबसे कम सुधार प्रदान किया। थ्रेड-आधारित विधि बीच में थी लेकिन तकनीकी समस्याओं से ग्रस्त थी जो कंप्यूटर की मेमोरी संगठन से संबंधित थीं। अंततः, शोध ने दिखाया कि बड़े पैमाने के महामारी सिमुलेशन के लिए, मैसेज पासिंग का उपयोग करके कई प्रोसेसरों के बीच काम को विभाजित करना सबसे महत्वपूर्ण गति लाभ प्रदान करता है, जिससे वैज्ञानिकों को पुराने तरीकों की तुलना में बहुत कम समय में जटिल मॉडल चलाने की अनुमति मिलती है। यह दक्षता भविष्य के प्रकोपों की तैयारी के लिए महत्वपूर्ण है, जहाँ सिमुलेशन के हर सेकंड का समय बेहतर तैयारी और प्रतिक्रिया रणनीतियों में बदल सकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।