बहुत अधिक डेटा से कैसे निपटें?


14

हमारे प्लाज्मा डायनेमिक्स सिमुलेशन अक्सर बहुत अधिक जानकारी का उत्पादन करते हैं। सिमुलेशन के दौरान हम एक ग्रिड (x, y, z, t) पर विभिन्न भौतिक गुणों को रिकॉर्ड करते हैं जो कम से कम 10 गुणों के लिए (8192x1024x1024x1500) जितना बड़ा है। सिमुलेशन पूरा होने के बाद इस जानकारी को संसाधित किया जाता है। इसके साथ हम

  1. गुणों की फिल्में बनाते हैं,
  2. एक फूरियर विश्लेषण करते हैं,
  3. औसत गुणों की गणना करें।

जब हम छोटे सिस्टम का अध्ययन करते हैं, तो यह सरल डंपिंग जितना संभव हो उतना अच्छा काम करता है। इसने हमें परिणामों के साथ बातचीत करने और बाद में तय करने का लचीलापन दिया कि हम इसके साथ क्या करना चाहते हैं। इसने हमें अपने कम्प्यूटेशनल संसाधनों (सीपीयू समय) को केवल सिमुलेशन चलाने की अनुमति दी।

हमने मक्खी पर फूरियर विश्लेषण करने की प्रक्रिया शुरू कर दी है, और केवल लंबाई की तराजू की एक चुनिंदा सीमा के लिए फ़िल्टर करना है। संख्यात्मक कारणों के लिए, हमें कभी-कभी लंबाई के पैमानों को हल करने की आवश्यकता होती है जो वास्तव में हमारी रुचि से छोटे होते हैं, इसलिए उन मामलों में, यह फ़िल्टर बहुत अधिक होता है। हम विभिन्न समानांतर IO पुस्तकालयों की भी खोज कर रहे हैं, जैसे समानांतर I / O विकल्प, विशेष रूप से समानांतर HDF5 में

डेटा प्रोसेसिंग की दक्षता को अधिकतम करने के लिए कौन सी रणनीतियां उपलब्ध हैं?

क्या मक्खी पर सभी विश्लेषण (पोस्ट प्रोसेसिंग, उदाहरण के लिए फिल्में और भूखंडों को शामिल नहीं) करने का कोई लाभ है?

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

क्या सिमुलेशन से परिष्कृत परिणाम संग्रह के स्वतंत्र रूप से उपलब्ध उदाहरण हैं?


यह एक व्यापक प्रश्न की तरह लग सकता है। यदि आप ऐसा महसूस करते हैं, तो कृपया सुझाव दें कि मैं और अधिक विशिष्ट कैसे हो सकता हूं।
यन

1
यह भी देखें कि कुछ प्रायोगिक समूह इस समस्या से कैसे निपटते हैं। उच्च ऊर्जा भौतिकी (अल CERN) और खगोल भौतिकी में आने वाले डेटा के और भी बड़े पैमाने हो सकते हैं, जिन्हें संग्रहीत (या भंडारण से पहले फ़िल्टर भी किया जाता है क्योंकि डेटा किसी भी भंडारण में लिखा जा सकता है), वितरित और विश्लेषण किया जाता है।
ब्रायन डिग्स

जवाबों:


10

मुझे लगता है कि अपने लक्ष्यों से मेल खाने के लिए आपको अपना उत्पादन अलग करना पड़ सकता है:

  1. गुणों की फिल्मों के लिए, आपको संभवतः पूर्ण स्थानिक संकल्प और सभी चर की आवश्यकता नहीं है। ध्यान से चुनें कि आप क्या दिखाना चाहते हैं और फिल्म के अंतिम रिज़ॉल्यूशन के बारे में सोचें जो आप दिखा रहे हैं, इसमें संभवतः 8 बिलियन पिक्सेल नहीं होंगे।
  2. फूरियर विश्लेषण के लिए (या पीओडी जैसी चीजें), यदि वे अस्थायी हैं, तो आप शायद अपने डोमेन में समझदारी से चुने गए कुछ सौ बिंदुओं का नमूना ले सकते हैं। यदि वे स्थानिक हैं, तो आपको केवल कुछ स्नैपशॉट चाहिए और 1500 नहीं। और फिर से, सभी गुणों के नहीं।
  3. समय के औसत के लिए, आप केवल उसी फ़ील्ड को जोड़ सकते हैं और समय के आयाम के बारे में चिंता करने की ज़रूरत नहीं है? स्थानिक औसत हालांकि दर्दनाक है, खासकर यदि आप समय के साथ इसके विकास को देखना चाहते हैं। लेकिन डेटा को डंप करने से पहले अधिक ऑनलाइन प्रसंस्करण इसके आकार को कम कर सकता है ...

इसका मतलब यह है कि एक बड़े जेनेरिक के बजाय समर्पित आउटपुट के लिए काफी काम है लेकिन इससे लागत और आकार कम रखने में मदद मिलेगी। उम्मीद है की यह मदद करेगा !

बस एक और बात जो मैं जोड़ना चाहता हूं, सामान्य तौर पर, डेटा का पूरा रिज़ॉल्यूशन केवल रिस्टार्ट फाइल्स के लिए होता है, यानी आपके सिमुलेशन को रीस्टार्ट करने के लिए फाइल। आपको दिए गए सिमुलेशन के लिए इनमें से कई की आवश्यकता नहीं है (चलो 100 कहते हैं, ताकि यदि 2 पुनरारंभ के बीच कुछ होता है तो आप अपनी गणना के अधिकतम 1% पर खो देते हैं), जबकि आप शायद अपने लिए आउटपुट की आवृत्ति को क्रैंक करना चाहते हैं चलचित्र। और आप ऐसा कर सकते हैं कि उदाहरण के लिए संकल्प के सिर्फ 1/64 वें (प्रत्येक दिशा में 1 हर 4 अंक)।


स्थानिक औसत दर्दनाक क्यों है? बस इसे ऑन-द-फ्लाई करें और परिणाम लिखें, जो छोटा होना चाहिए।
डेविड केचेसन

@DavidKetcheson स्थानिक औसत दर्दनाक है क्योंकि इसमें बहुत सारे संचार की आवश्यकता होती है और संभवतः आपके डोमेन नंबर के टोपोलॉजी से प्रभावित होता है? यकीन है कि अगर आपके पास अपने संदर्भ फ्रेम के साथ एक शुद्ध ऑर्थोगोनल ग्रिड गठबंधन है, तो यह बहुत बुरा नहीं है, लेकिन आपको अभी भी गणना और MPI_REDUCE के कुछ स्मार्ट संयोजन करना होगा क्योंकि उस आकार के ग्रिड के साथ, आप सिर्फ 1 पर एक ALL_REDUCE नहीं कर सकते प्रोसेसर मुझे लगता है कि ...
FrenchKheldar

1
ठीक है, अब मैं आपकी टिप्पणी को समझता हूं। लेकिन संचार आमतौर पर बहुत बुरा नहीं है, क्योंकि आप प्रत्येक प्रक्रिया को स्थानीय स्तर पर औसत कर सकते हैं और फिर बस प्रति प्रक्रिया एक फ्लोट को कम कर सकते हैं। मेरे अनुभव में (65K कोर BlueGene / P पर), इस की लागत तुच्छ है, विशेष रूप से I / O लागत की तुलना में। वास्तव में, हम हर समय कदम पर पूरे 65K कोर पर एक ALL_REDUCE करते हैं और यह बहुत तेज़ है।
डेविड केचेसन 18

@DavidKetcheson वास्तव में अब मुझे लगता है कि मैंने आपकी बात को गलत समझा है, और मैं डेटा में कमी की लागत को भी कम कर रहा था। मेरे दिमाग में जो कुछ था वह एक स्पाइवेयर / अज़ीमुथल औसत की तरह था, जहाँ आपको पूर्ण 2D डेटा को स्टोर / आउटपुट करना होगा जो कम्प्यूटेशनल ग्रिड के समान ग्रिड पर हो सकता है या नहीं हो सकता है। लेकिन आप सही हैं, MPI_ALL_REDUCE की वास्तविक लागत अपने आप में कोई समस्या नहीं है।
फ्रेंचकेवलडर

8

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


3

पीटर लेजेज एक विधि के सुझाव के लिए जाली-क्यूसीडी सर्किलों में काफी प्रसिद्ध है, जिसके माध्यम से अनजाने-बड़े जाली ग्रिडों को खोजकर और कम दूरी के विश्लेषणात्मक समाधानों को लागू करके कम किया जा सकता है।

यह मोटे तौर पर ध्यान देने के बराबर है कि अच्छी तरह से चुनी गई छींटों का एक सेट ट्रेपेज़ॉइड विधि की तुलना में कम समुद्री मील के साथ सटीक एकीकरण की अनुमति दे सकता है (सिवाय इसके कि आपके मामले में आपको एक ही बार में चार आयामों पर इसका लाभ उठाने के लिए मिलता है)।

इसका परिणाम यह होता है कि आप डेटा के सेट के कच्चे आकार का व्यापार प्रति नोड - अधिक गणना के लिए करते हैं, लेकिन आपकी समस्या की उच्च आयामीता के कारण अंत में आगे आते हैं ।

मैं ऐसा विषय नहीं हूं जिस पर कोई भी अच्छे संकेत देने के लिए मैं अच्छी तरह से जानता हूं, लेकिन इसने अतीत में कुछ क्षेत्रों में काम किया है।


3

प्रश्न थोड़ा व्यापक है, इसलिए मैं एक सुसंगत रूप से अस्पष्ट उत्तर दूंगा जो ऐसे मामलों में संभव तकनीकों का सुझाव देता है।

1) ऑन-द-फ्लाई प्रोसेसिंग, जिस पर आप पहले से ही काम कर रहे हैं। ऑन-द-फ़्लाय प्रोसेसिंग करने का एक तरीका और डेटा-जनरेट करने वाले चरण से अभी तक इसे अलग करना एक चक्रीय आउटपुट फ़ाइल उत्पन्न करना है जिसमें हमेशा अंतिम N चरण होते हैं, और विश्लेषण एक अलग प्रक्रिया में होता है। जाहिर है कि दौड़ की स्थिति को रोकने के लिए आपको दोनों को सिंक्रनाइज़ करना होगा।

2) संग्रहीत डेटा को अधिक सावधानी से चुनना। यह दुर्भाग्यपूर्ण स्थिति है।

3) इसे संग्रहीत करने से पहले अपने डेटा को संपीड़ित करें, या एकीकृत संपीड़न विकल्पों के साथ एक भंडारण पुस्तकालय का उपयोग करें, जैसे कि एचडीएफ 5।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.