लॉग-लॉग समानांतर स्केलिंग / दक्षता भूखंड


17

मेरे बहुत सारे काम एल्गोरिदम पैमाने को बेहतर बनाने के इर्द-गिर्द घूमते हैं, और समानांतर स्केलिंग और / या समानांतर दक्षता दिखाने के पसंदीदा तरीकों में से एक कोरो की संख्या से अधिक एल्गोरिदम / कोड के प्रदर्शन की साजिश करना है, जैसे।

कृत्रिम समानांतर स्केलिंग साजिश

जहां -ैक्सिस कोर की संख्या का प्रतिनिधित्व करता है और मैक्सिस कुछ मीट्रिक, जैसे समय के प्रति यूनिट किए गए कार्य। अलग-अलग घटता क्रमशः २०%, ४०%, ६०%, and०%, और १००% ६४ कोर पर समानांतर क्षमता दिखाते हैं।एक्सy

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

यहाँ छवि विवरण दर्ज करें

जो ऊपर के जैसा ही प्लॉट है, फिर भी लॉग-लॉग स्केलिंग के साथ है। ध्यान दें कि अब 60%, 80%, या 100% समानांतर दक्षता के परिणामों के बीच कोई बड़ा अंतर नहीं है। मैंने यहाँ इस बारे में थोड़ा और विस्तार से लिखा है

तो यहाँ मेरा सवाल है: लॉग-लॉग स्केलिंग में परिणाम दिखाने के लिए क्या औचित्य है? मैं नियमित रूप से अपने परिणाम दिखाने के लिए रैखिक स्केलिंग का उपयोग करता हूं, और नियमित रूप से रेफरी द्वारा यह कहते हुए अंकित किया जाता है कि मेरे स्वयं के समानांतर स्केलिंग / दक्षता परिणाम दूसरों के (लॉग-लॉग) परिणामों के रूप में अच्छे नहीं लगते हैं, लेकिन मेरे जीवन के लिए यह नहीं देख सकता कि मुझे प्लॉट शैलियों को क्यों बदलना चाहिए।

जवाबों:


16

हम वर्तमान में एक पेपर लिख रहे हैं जिसमें कई तुलनीय भूखंड हैं, और कमोबेश यही समस्या थी। पेपर कोर की संख्या पर विभिन्न एल्गोरिदम की स्केलिंग की तुलना करने के बारे में है, जो एक ब्लूगिन पर 1 और 100k के बीच होता है। इस स्थिति में लॉग-प्लॉट का उपयोग करने का कारण परिमाण के आदेशों की संख्या है। वहाँ कोई रास्ता नहीं है एक रेखीय पैमाने पर परिमाण के 6 आदेशों की साजिश कर सकता है।

और वास्तव में, जब लॉगलॉग में कोर की संख्या पर समय की साजिश रचते हैं, तो एल्गोरिदम बहुत अलग नहीं होते हैं, जैसा कि आप निम्नलिखित प्लॉट में देख सकते हैं। लॉग-स्केल पर कई एल्गोरिदम की टाइमिंग।  विभिन्न एल्गोरिदम को भेद करना कठिन है।

पी=टी1/(पीटीपी)टी1टीपीपीपीपीपी

पी=टीआर/(पीटीपी)टीआर

सेमीलॉग पैमाने पर सापेक्ष समानांतर दक्षता को प्लॉट करना एक एल्गोरिथ्म के स्पष्ट रूप से स्केलिंग को दर्शाता है, और यह भी दिखाता है कि एल्गोरिदम एक दूसरे के लिए अपेक्षाकृत कैसे प्रदर्शन करते हैं। कोर की संख्या पर कई एल्गोरिदम की सापेक्ष समानांतर दक्षता।


2
एक्स

ध्यान दें कि प्लॉट अन्य स्केलिंग प्लॉटों की तरह प्रभावशाली नहीं होते हैं, क्योंकि वे लॉगस्केल पर बहुत जल्दी गिर जाते हैं। इसके अलावा, आप सिद्धांत रूप में भी सही किनारे पर अधिक विवरण देखने के लिए लॉगॉग प्लॉट में दक्षता की साजिश कर सकते हैं। हालांकि ध्यान दें कि इसका मतलब है कि आप बहुत कम क्षमता पर विस्तार से देखते हैं, जो शायद बहुत रुचि का नहीं है।
ऑलेंज

14

जॉर्ज हैगर ने इस बारे में फ़ूलिंग द मास - स्टंट 3 में लिखा है : लॉग स्केल आपका दोस्त है

हालांकि यह सच है कि मजबूत स्केलिंग के लॉग-लॉग प्लॉट उच्च अंत पर बहुत समझदार नहीं हैं, वे परिमाण के कई और आदेशों में स्केलिंग दिखाने की अनुमति देते हैं। यह देखने के लिए कि यह क्यों उपयोगी है, नियमित शोधन के साथ एक 3 डी समस्या पर विचार करें। एक रेखीय पैमाने पर, आप यथोचित रूप से परिमाण के दो आदेशों जैसे, 1024 कोर, 8192 कोर और 65536 कोर के प्रदर्शन को दिखा सकते हैं। कथानक से पाठक के लिए यह बताना असंभव है कि क्या आप कुछ भी छोटा और वास्तविक रूप से चला रहे हैं, यह कथानक ज्यादातर सिर्फ दो रनों की तुलना करता है।

अब मान लें कि हम मेमोरी में प्रति मिलियन 1 मिलियन ग्रिड कोशिकाएं फिट कर सकते हैं, इसका मतलब है कि 8 के कारक द्वारा दो बार मजबूत स्केलिंग के बाद भी हमारे पास प्रति कोर 16k कोशिकाएं हो सकती हैं। यह अभी भी एक बड़े आकार का उपडोमेन आकार है और हम कई एल्गोरिदम को कुशलतापूर्वक चलाने की उम्मीद कर सकते हैं। हमने चार्ट (1024 से 65536 कोर) के दृश्य स्पेक्ट्रम को कवर किया है, लेकिन उस शासन में भी प्रवेश नहीं किया है जहां मजबूत स्केलिंग मुश्किल हो जाती है।

मान लीजिए कि इसके बजाय हमने 16 कोर से शुरू किया, वह भी प्रति कोर 1 मिलियन ग्रिड कोशिकाओं के साथ। अब यदि हम ६५५३६ कोर की ओर बढ़ाते हैं, तो हमारे पास प्रति कोर केवल २४४ कोशिकाएँ होंगी, जो बहुत अधिक समझदार होने वाली हैं। एक लॉग अक्ष 16 कोर से 65536 कोर तक स्पष्ट रूप से स्पेक्ट्रम का प्रतिनिधित्व करने का एकमात्र तरीका है। बेशक आप अभी भी एक रेखीय अक्ष का उपयोग कर सकते हैं और एक कैप्शन कह सकते हैं कि "आंकड़ा बिंदुओं के लिए 16, 128 और आंकड़ा में 1024 कोर ओवरलैप हैं", लेकिन अब आप आंकड़े दिखाने के बजाय शब्दों का उपयोग कर रहे हैं।

लॉग-लॉग स्केल आपके स्केलिंग को मशीन विशेषताओं से "पुनर्प्राप्त" करने की अनुमति देता है जैसे एकल नोड या रैक से आगे बढ़ना। यह आप पर निर्भर है कि यह वांछनीय है या नहीं।


एक्सy

1
यह है बहुत मजबूत पैमाने पर करने के पैमाने दो के लिए 4096 से का एक पहलू से एक भी समस्या और अधिक कठिन अलग 64 प्रत्येक का एक पहलू से समस्या आकार। मेरे द्वारा दिए गए उदाहरण में, दो स्वतंत्र मामलों को 95% दक्षता से बेहतर दिखाना आसान है, लेकिन एकल संयुक्त मामले में 30% से कम दक्षता है। विज्ञान और उद्योग में, संकीर्ण आकार सीमा के भीतर गिरने के वांछित समय के लिए कोई पूर्व निर्धारित कारण नहीं है जहां एल्गोरिथ्म "आरामदायक" है।
जेड ब्राउन ने

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

2

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

इसका एक फायदा यह है कि एक बार आपको नंबर प्रदान करने के बाद, एक समीक्षक बहुत कुछ नहीं कह सकता है (या कम से कम इतना नहीं कि आप उसे रिबूट न ​​कर सकें)।

*जे। लुटेजेंस, एम। बर्जिंस। 24 वें IEEE अंतर्राष्ट्रीय समानांतर और वितरित प्रसंस्करण संगोष्ठी (IPDPS10), अटलांटा, GA, पीपी। 1--10 की कार्यवाही में एक बड़े पैमाने पर अनुकूली कम्प्यूटिंग फ्रेमवर्क: यूंटा के प्रदर्शन में सुधार। 2010. DOI: 10.1109 / IPDPS.2010.5470437


किसी भी मौका आप छवि को सीधे अपने उत्तर में एम्बेड कर सकते हैं?
एरन अहमदिया

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

उस दृष्टिकोण से, आप छवि को लपेट सकते हैं ताकि यह लेखक की साइट से लिंक हो, साथ ही लिंक में पाठ की मात्रा बढ़ा सके। यदि आप इस बारे में अधिक चर्चा करना चाहते हैं, तो मैं मेटा / चैट थ्रेड खोल सकता हूं।
एरन अहमदिया

@BillBarth आपका लिंक अभी उनके होम पेज पर रीडायरेक्ट करता है। क्या आप इसे ठीक कर सकते हैं या इच्छित छवि को एम्बेड कर सकते हैं?
जेड ब्राउन

1
@JedBrown लिंक संपादित किया गया। पूर्ण संदर्भ जोड़ा गया। DOI गयी।
बिल बर्थ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.