एक्सटर्नल मेमोरी में एक्सपोनेंशियल स्पीडअप


15

पृष्ठभूमि

बाह्य मेमोरी, या DAM मॉडल, I / Os की संख्या से एल्गोरिथ्म की लागत को परिभाषित करता है जो इसे निष्पादित करता है (अनिवार्य रूप से, कैश की संख्या याद आती है)। ये रनिंग टाइम आम तौर पर , मेमोरी के आकार और संदर्भ में दिए जाते हैं , उन शब्दों की संख्या जिन्हें एक समय में मेमोरी में ट्रांसफर किया जा सकता है। कभी-कभी और का उपयोग क्रमशः और लिए किया जाता है। MBLZBM

उदाहरण के लिए, छंटाई के लिए की लागत की आवश्यकता होती है और भोले मैट्रिक्स गुणन के लिए । Θ(N/BlogM/BN/B)Θ(n3/BM)

इस मॉडल का उपयोग "कैश-गुमनामी एल्गोरिदम" का विश्लेषण करने के लिए किया जाता है, जिसमें B या एम का ज्ञान नहीं होता है M। आम तौर पर लक्ष्य कैश-गुमनामी एल्गोरिदम के लिए बाहरी मेमोरी मॉडल में बेहतर प्रदर्शन करना है; यह हमेशा संभव नहीं है, उदाहरण के लिए पर्मुटेशन समस्या में ( ब्रोडल, फादरबर्ग 2003 में दिखाया गया है )। सॉर्टिंग और मैट्रिक्स गुणन की चर्चा सहित कैश- विस्मृत एल्गोरिदम के एक और स्पष्टीकरण के लिए एरिक डेमेन द्वारा इस राइटअप को देखें ।

हम देख सकते हैं कि M को बदलने से Mछँटाई के लिए एक लघुगणक गति और मैट्रिक्स गुणन के लिए एक बहुपद गति का कारण बनता है। (यह परिणाम मूल रूप से हांग कांग, कुंग 1981 से है और वास्तव में कैश विस्मृति और बाहरी मेमोरी मॉडल के औपचारिककरण दोनों को दर्शाता है)।

मेरा सवाल यह है:

क्या कोई ऐसा मामला है जहां एम में स्पीडअप घातीय है M? चलने का समय f (N, B) / 2 ^ {O (M)} जैसा कुछ होगा f(N,B)/2O(M)। मैं विशेष रूप से कैश-विस्मृत एल्गोरिथ्म या डेटा संरचना में रुचि रखता हूं जो इस विवरण को फिट करता है, लेकिन कैश-अवेटेड एल्गोरिदम / डेटा संरचना या यहां तक ​​कि एक सबसे अच्छी तरह से ज्ञात निचले बाउंड के साथ खुश होगा।

यह आम तौर पर ज्यादातर मॉडलों में माना जाता है कि शब्द का आकार यदि इनपुट आकार है और स्पष्ट रूप से । फिर का एक स्पीडअप में एक बहुपद स्पीडअप देता है । यह मुझे विश्वास दिलाता है कि यदि मैं जिस समस्या की तलाश कर रहा हूं, वह मौजूद नहीं है, तो यह बहुपद नहीं है। (अन्यथा हम I / Os की निरंतर संख्या प्राप्त करने के लिए एक निरंतर द्वारा कैश आकार को बदल सकते हैं, जो संभावना नहीं लगती है)।w=Ω(logN)NM>w2MN


अनुमान लगा सकते हैं, लेकिन ? स्पीडअप रूप में दिया गया मामला पर्याप्त है? N=Bpolylog(B)
vzn

यह मेरे उद्देश्यों के लिए संदर्भ में होना है, दुर्भाग्य से। मैं संदर्भ में दिलचस्पी होगी, हालांकि। M
सैम

कैश गुमनामी एल्गोरिदम पर विकिपीडिया । fyi इस क्षेत्र के अंकन में कुछ सूक्ष्मता है। इस क्षेत्र में डी 7 के फुटनोट कहते हैं, समस्या का आकार है और कभी-कभी जहां ब्लॉक की संख्या है, "लेकिन निचले मामले की धारणा पक्ष से बाहर हो गई है"। आप ऊपर और वैकल्पिक रूप से उपयोग इनपुट आकार के रूप में करते हैं। लगता है कि आपको अपने प्रश्न में कम से कम मानकीकरण करना चाहिए। Nn=N/BnnN
vzn 20

मैंने इसे निरंतरता के लिए संपादित किया। इनपुट का आकार है, और का उपयोग केवल मैट्रिक्स गुणा के लिए किया जाता है क्योंकि उस समस्या के लिए चल रहा समय आमतौर पर मैट्रिक्स (यानी ) के संदर्भ में परिभाषित किया जाता हैNnn×nN=n2
SamM

साहित्य को स्कैन करने के बाद इसके मामले नहीं देखें। शायद ऐसा कोई रेफरी नहीं है? हो सकता है कि ऐसा कोई मामला हो, जिसमें ऐसा कोई एल्गोरिथ्म जटिल हो और इसलिए इस तरह के स्पीडअप को प्राप्त करने के लिए सैद्धांतिक रूप से विश्लेषण करना कठिन हो ...? या शायद इससे वंचित रहना पड़ेगा ...? या, शायद यह संभव नहीं है? क्या कोई विचार हो सकता है कि स्मृति तक यादृच्छिक पहुंच सबसे खराब स्थिति है? ऐसा लगता है कि गति के लिए वृद्धि के मामले में रैखिक है ...? या, शायद स्मृति तक पहुंच का कुछ भग्न पैटर्न सबसे खराब स्थिति है? अध्ययन की यह रेखा केवल एक दशक से भी अधिक पुरानी है ....M
vzn

जवाबों:


3

मुझे यकीन नहीं है कि मैं सवाल समझ गया। लेकिन मुझे लगता है कि इस धारणा है कि के तहत घातीय समय की आवश्यकता होती है समस्याओं होता है, इस तरह की समस्याओं, अपनी आवश्यकताओं को पूरा के बाद से अगर है आप मैं के एक घातीय संख्या की आवश्यकता होगी / ओ परिचालन (आप कर सकते हैं के बाद से ' t "रहना" आकार के समान मेमोरी ब्लॉक में एक चक्र में जाने के बिना बहुपदों की संख्या से अधिक है) और यदि आपको केवल I / O संचालन की रैखिक संख्या की आवश्यकता होगी। इसके अलावा, आपके अवलोकन के विषय में कि ऐसी समस्या से संबंधित नहीं हो सकती है , यह सही है यदि स्पीडअप को मानों के लिए धारण करना चाहिए जो किPSPACEMO(logN)O(logN)M=NPMΩ(N)(चूंकि इसका मतलब होगा कि हमारे पास बहुत अधिक संख्या में ऑपरेशन होंगे)। लेकिन अगर स्पीडअप केवल छोटे मूल्यों पर लागू होता है , तो सहज रूप से मेरा मानना ​​है कि यह सच नहीं है, क्योंकि मुझे लगता है कि एक समस्या को डिजाइन करना संभव होना चाहिए जो वास्तव में आकार की छोटी समस्याओं का समाधान है, प्रत्येक की आवश्यकता होती है अपने स्वयं के आकार में घातीय समय, और I / O संचालन की एक घातांक संख्या (जो है, , क्योंकि में घातांक है )। अभ्यास में मेरा मानना है कि जैसे -Complete समस्याओं अपनी हालत को पूरा।MO(logN)poly(N)poly(N)O(logN)PSPACETQBF


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

1
मुझे समझ में नहीं आता कि में बाह्य मेमोरी में कोई समस्या क्यों मामूली है । यदि और एल्गोरिथ्म, घातांक समय लेता है, तो आपको मेमोरी के दो हिस्सों को कई गुना अधिक संख्या में आगे और पीछे स्वैप करने के लिए मजबूर किया जा सकता है। M=Ω(N)M=N/2
user8477

आह, निश्चित रूप से आप लगातार कारक महत्वपूर्ण होने के बारे में सही हैं। यह काफी काम की बात है; यह निश्चित रूप से एक अच्छा प्रारंभिक बिंदु है।
सैम

मध्यवर्ती मूल्यों के लिए मेरे पास कोई तर्क नहीं है। बहुत ही सतही स्तर पर, मुझे लगता है कि कुछ बैकग्राउंडिंग एल्गोरिदम में मेमोरी साइज़ पर एक घातीय निर्भरता होगी क्योंकि खोज ट्री में कम गहराई के नोड्स पर I / O संचालन की आवश्यकता होगी। यह निर्भरता मध्यवर्ती मूल्यों पर लागू होगी। यह निश्चित रूप से समस्या की अंतर्निहित जटिलता के बारे में कुछ नहीं कहता है। इसके अलावा, यदि आपके पास , तो ऊपर दिया गया कबूतर (साइक्लिंग) तर्क अभी भी का लाभ प्राप्त करेगा जहां समस्या की समय जटिलता है। =ω(लॉगएन)टी(एन)/2टी(एन)
user8477

-4

यह प्रश्न टेरा इन्कोग्निटा यानि अस्पष्टीकृत क्षेत्र में भाग लेने के लिए प्रकट होता है । यहाँ कुछ सोचने और समीक्षा करने के बाद, इस पर कुछ विचार / विचार स्पष्ट रूप से बहुत ही कठिन / सूक्ष्म प्रश्न हैं, जो उम्मीद है कि बुद्धिमान होंगे, लेकिन निश्चित नहीं हैं।

डिमैन जिसे आप उद्धृत करते हैं, "सिद्धांत विचार [कैश विस्मृत एल्गोरिदम का] सरल है: और को जाने बिना बाह्य-मेमोरी एल्गोरिदम डिज़ाइन करें । लेकिन इस सरल विचार के कई आश्चर्यजनक शक्तिशाली परिणाम हैं।"BM

यह आश्चर्यजनक रूप से सूक्ष्म प्रभाव भी प्रतीत होता है। यह चरम व्यवहार के लिए इस मॉडल का विश्लेषण करना कठिन प्रतीत होता है और ऐसा प्रतीत होता है कि किसी ने भी अब तक ऐसा नहीं किया है। कुछ सर्वेक्षण हुए हैं और वे अब तक पूरे क्षेत्र का सर्वेक्षण करते हैं। यह आश्चर्य की बात नहीं है कि यह क्षेत्र केवल ~ 1 दशक पुराना है।

  • मॉडल ट्यूरिंग मशीनों के लिए अनुवादित नहीं किया गया है, जहां अभी तक अधिक सख्त / औपचारिक / सैद्धांतिक / सामान्य / मानक विश्लेषण संभव हो सकता है। बिग-ओह संकेतन की संपूर्ण अवधारणा और इसके निहितार्थ और अंतर्ज्ञान जैसे स्थिरांक की अप्रासंगिकता अनिवार्य रूप से कैश विस्मृत एल्गोरिदम के इस क्षेत्र में ले जाना नहीं है। उदाहरण के लिए मॉडल पहले से ही कॉन्स्टेंट साथ काम कर रहा है जो सटीक मेमोरी साइज को मापता है। ऐसा प्रतीत होता है कि क्षेत्र में अभी तक इसकी गतिशीलता के मूल स्वयंसिद्धों का एक सेट नहीं है।B,M

  • टीएम का आविष्कार 1936 में ट्यूरिंग द्वारा किया गया था और हार्टमैनिस-स्टर्न्स के समय / अंतरिक्ष पदानुक्रम प्रमेय (जो आप इस प्रश्न में कुछ हद तक समझ रहे हैं ) 1965 में खोजे गए थे। एक उल्लेखनीय ~ 3 दशक अभी तक समय / अंतरिक्ष पदानुक्रम प्रमेयों को अब कुछ हद तक माना जाता है। प्राथमिक और स्नातक कक्षाओं में पढ़ाया जाता है। इस मॉडल में अभी तक स्थापित पदानुक्रम प्रमेयों के अनुरूप प्रतीत नहीं होता है, और यह कैसे करना एक तुच्छ समस्या नहीं है। यह मॉडल वास्तव में मानक ट्यूरिंग मशीन (जो पहले से ही बहुत जटिल गतिशीलता है) की तुलना में अधिक "चलती भागों" है, यानी एक संवर्धित ट्यूरिंग मशीन की तरह है।

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

  • इस समस्या पर अनुभवजन्य रूप से सिमुलेशन के साथ हमला करने का सुझाव दें जो कि जहां साहित्य पर ध्यान केंद्रित करता है जैसे कुमार द्वारा इस महान सर्वेक्षण में कैश विस्मृत एल्गोरिदम पर (2003)। कैश सिमुलेशन के लिए ऑनलाइन कई कार्यक्रम और पेपर हैं और कुछ सरलीकरणों का उपयोग करते हुए, कोड की एक बड़ी मात्रा के बिना संभवतः आपके प्रश्न का उत्तर दे सकता है। एक मूल विचार संभाव्य एल्गोरिदम बनाने का है जो संभावनाओं के आधार पर स्मृति के "पास" क्षेत्रों तक पहुंचते हैं। "पास" यहाँ आवश्यक रूप से सन्निहित स्मृति नहीं है, बल्कि एक एल्गोरिथ्म है जो यादृच्छिक मेमोरी पेज (ब्लॉक) का चयन करता है जो अपने स्वयं के सबसे हाल ही में एक्सेस किए गए पृष्ठों पर नज़र रखता है। बिजली कानूनों का उपयोग करने का सुझाव दें"सबसे हाल ही में एक्सेस की गई" सूची में "पास" पृष्ठों का चयन करने की संभावना निर्धारित करने के लिए। यह प्रमुख पहलू है जो कैश-आधारित प्रदर्शन सुधारों से संबंधित है।

  • 'एम' के आधार पर एक मोटा तर्क प्रस्तुत करता है जो मूल रूप से "कोर मेमोरी" बनाम डिस्क मेमोरी का माप है। एल्गोरिथ्म के लिए, किसी को कोर मेमोरी बढ़ने की उम्मीद होती है, एक एल्गोरिथम गति में रैखिक सुधार के लिए केवल [asymptotically] करीब आता है, और एल्गोरिथ्म गति में किसी भी सुपर-रैखिक वृद्धि को प्राप्त करने के लिए "कोर मेमोरी" को जोड़ना सहज रूप से लगभग गति से अधिक होने जैसा लगता है। सीमा और "कुछ नहीं के लिए कुछ हो रहा है"। हालाँकि, मॉडल को यह साबित करने के लिए अच्छी तरह से समझ नहीं है [लेकिन जाहिर है कि अधिकारियों / संस्थापकों / विशेषज्ञों सहित किसी और के पास नहीं है]।

  • इस कैश-विस्मृत एल्गोरिथम साहित्य ने पी एल्गोरिदम पर ध्यान केंद्रित किया है और गैर-पी एल्गोरिथ्म के अब तक के विश्लेषण के बिल्कुल भी कोई मामला नहीं देखा है और शायद कोई भी मौजूद नहीं है। यह संभवतः हो सकता है क्योंकि विश्लेषण बहुत मुश्किल है! किस मामले में, चरम व्यवहार के बारे में प्रश्न इस क्षेत्र में लंबे समय तक अनुत्तरित रह सकते हैं।

  • यह भी स्पष्ट रूप से स्पष्ट नहीं लगता है, या संभवतः अभी तक अध्ययन किए गए सभी के बारे में, इस तरह के "छोटे" जटिलता एल जैसे, या "बड़े" एल्गोरिदम जैसे कि गैर-पी (जैसे एक्सपेस्पेस आदि) इस मॉडल में व्यवहार करते हैं। मॉडल स्मृति स्थानीयता को माप रहा है, जो कि मौलिक रूप से भिन्न प्रतीत होता है, लेकिन समय और स्थान पदानुक्रम के साथ परस्पर जुड़ा हुआ है।

  • कुछ अध्ययन, परिणाम और कागजात के साथ "उलट जटिलता" नामक ट्यूरिंग मशीन जटिलता का कुछ अस्पष्ट माप है, जो संबंधित हो सकता है। मूल रूप से टीएम समय और स्थान की एक निश्चित मात्रा को कवर कर सकता है, लेकिन प्रतिक्षेपण अभिकलन के दौरान टेप सिर के कुछ स्वतंत्र माप हैं। ऐसा लगता है कि "उच्च रिवर्सल" "उच्च मेमोरी लोकलिटी" से संबंधित हो सकता है क्योंकि दोनों ही मामलों में टेप हेड एक "छोटे" क्षेत्र में रहने के लिए प्रवृत्त हो रहा है बनाम बड़े क्षेत्रों में जा रहा है।

  • यह प्रश्न और मॉडल मुझे अमदहेल्स कानून की याद दिलाता है और संदेह करता है कि अभी तक कम-अनदेखे समान कानून जैसे कम रिटर्न या बैलेंस / ट्रेडऑफ़ इस क्षेत्र में हो सकते हैं या लागू हो सकते हैं। मोटा तर्क: कैश अनजान एल्गोरिथ्म सिद्धांत एक परिमित "स्थानीय" मेमोरी और एक लागत-आधारित बाहरी "अनंत" डिस्क के बीच एक संतुलन / व्यापार को देख रहा है। यह मूल रूप से दो संसाधन हैं जो "समानांतर में" व्यवहार करते हैं और उनके बीच कुछ प्रकार के इष्टतम व्यापार की संभावना है।


2
k

टीएम मॉडल टीसीएस का बुनियादी मॉडल है और इसकी जटिलता पदानुक्रम (समय / स्थान, पी / एनपी आदि जैसे बुनियादी जटिलता वर्ग) के बीच कैश वंचित एल्गोरिदम के साथ स्पष्ट रूप से मैप किए जाने के लिए "ब्रिज थम्स" है। बाहरी मेमोरी मॉडल और संबंधित कैश बेखबर मॉडल मूल रूप से वास्तविक दुनिया प्रदर्शन विशेषताओं को मॉडल करने का प्रयास कर रहे हैं और साहित्य अब तक अधिक से अधिक सैद्धांतिक सार में रुचि नहीं रखता है जैसे कि प्रश्न द्वारा पूछा गया।
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.