Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

डेटा संरचना में कैश मिस गिनना


एल्गोरिदम विश्लेषण में हम ऑपरेशन और चरणों को गिनते हैं। यह मूल रूप से उचित है जब कंप्यूटर किसी ऑपरेशन को करने में डेटा लाने से अधिक समय लेता है जिसकी उस ऑपरेशन के लिए आवश्यकता होती है। आजकल ऑपरेशन करने की लागत मेमोरी से डेटा लाने की लागत से काफी कम है।

कई एल्गोरिदम का रन टाइम ऑपरेशन की संख्या के बजाय मेमोरी रेफरेंस की संख्या (कैश मिस की संख्या) से प्रभावित होता है। इसलिए, जब हम कुछ एल्गोरिदम डिजाइन करने का प्रयास करेंगे, तो हमें न केवल ऑपरेशन की संख्या बल्कि मेमोरी एक्सेस की संख्या को कम करने पर ध्यान केंद्रित करना होगा। साथ ही उन एल्गोरिदम को डिजाइन करने पर ध्यान केंद्रित करना होगा जो मेमोरी लेटेंसी को छिपाते हैं।

मान लें एक सरल कंप्यूटर मॉडल है जिसमें कंप्यूटर की मेमोरी में L1 कैश, L2 कैश, और मुख्य मेमोरी शामिल है। हम ALU का उपयोग करके रजिस्टर (R) में मौजूद डेटा पर अंकगणितीय और तार्किक ऑपरेशन करते हैं

इसका ब्लॉक डायग्राम नीचे है -

डेटा संरचना में कैश मिस गिनना

डायग्राम से हम मेमोरी और कैश के आकार के बारे में कुछ ज्ञान भी प्राप्त कर सकते हैं। मुख्य मेमोरी मूल रूप से सैकड़ों या हजारों MB होती है। जहां L2 कैश MBs का कुछ अंश होता है और L1 कैश कुछ KB होते हैं। रजिस्टर का आकार कुछ बिट्स होता है। जब हम एक प्रोग्राम निष्पादित करते हैं, तो सभी डेटा मेमोरी में होता है। यदि हम ADD जैसे कुछ ऑपरेशन जोड़ते हैं, तो पहली संख्या रजिस्टर में संग्रहीत होगी, रजिस्टर में डेटा जोड़ा जाता है, फिर परिणाम मेमोरी में लिखा जाता है।

मान लें एक साइकिल वह समय है जो रजिस्टर में पहले से मौजूद डेटा को जोड़ने के लिए आवश्यक होगा। L1 कैश से रजिस्टर में डेटा लोड करने के लिए आवश्यक समय इस मॉडल में दो साइकिल मान लें। यदि आवश्यक डेटा L1 कैश में नहीं हैं लेकिन L2 कैश में मौजूद हैं, तो हमें L1 कैश मिस मिलती है और आवश्यक डेटा L2 कैश से L1 कैश और रजिस्टर में 10 साइकिल में ले लिए जाते हैं। जब हमारे आवश्यक डेटा L2 कैश में भी नहीं होते, तो हमें L2 कैश मिस मिलती है और आवश्यक डेटा मुख्य मेमोरी से L2 कैश, L1 कैश, और रजिस्टर में 100 साइकिल में ले लिए जाएंगे। फिर राइट ऑपरेशन को एक साइकिल के रूप में गिना जाता है भले ही डेटा मुख्य मेमोरी में लिखा जाता है, क्योंकि हम अगले ऑपरेशन पर आगे बढ़ने से पहले पूर्ण लिखने की प्रतीक्षा नहीं करते हैं।

  1. डेटा संरचना में B+ ट्री क्वेरी (B+ tree Query) डेटा संरचना में B+ ट्री क्वेरी (B+ tree Query)

    यहाँ हम देखेंगे कि B+ ट्री में खोज कैसे की जाती है। B+ ट्री खोज को B+ ट्री क्वेरीिंग (B+ Tree Querying) के रूप में भी जाना जाता है। यह एल्गोरिदम B-ट्री की क्वेरी करने के समान है। इसके अलावा, यह रेंज क्वेरी (range query) का समर्थन करता है। मान लीजिए हमारे पास नीचे जैसा B+ ट्री है: B+ ट्री का उदाहरण

  1. डेटा संरचना में B+ ट्री (The B+ tree) डेटा संरचना में B+ ट्री (The B+ tree)

    यहाँ हम देखेंगे कि B+ ट्री (B+ Trees) क्या हैं। B+ ट्री B-ट्री का विस्तारित संस्करण हैं। यह ट्री B-ट्री की तुलना में बेहतर सम्मिलन, विलोपन और खोज का समर्थन करता है। B-ट्री में, कुंजियाँ और रिकॉर्ड मान आंतरिक और साथ ही पत्ती नोड्स में संग्रहीत होते हैं। B+ ट्री में रिकॉर्ड्स, पत्ती नोड पर संग्रहीत

  1. हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure) हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure)

    परिचय (Introduction) टेम्पलेट पैरामीटर्स के लिए HDS या हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure - संक्षिप्त HalfedgeDS) को एक एज-केंद्रित डेटा स्ट्रक्चर (Edge-centered Data Structure) के रूप में परिभाषित किया जाता है जो वर्टेक्स, एज और फेसेस (Vertices, Edges and Faces) की घटना जानकारी (Incidenc