वर्तमान प्रक्रिया को बिना छुए:tar.gz से एक फ़ाइल निकालें, डिस्क
- मैं एक
tar.gz
फ़ाइल है। (असल में, मेरे पास उनमें से 2000 हैं, लेकिन यह एक और कहानी है)। - मैं एक अस्थायी निर्देशिका बनाता हूं,
tar.gz
फ़ाइल निकालें, 100,000 छोटी फ़ाइलों को प्रकट करता हूं (लगभग 600 बाइट प्रत्येक)। - प्रत्येक फ़ाइल के लिए, मैं इसे एक प्रसंस्करण प्रोग्राम में पाता हूं, पाइप जो किसी अन्य विश्लेषण प्रोग्राम में लूप करता है, और परिणाम को सहेजता है।
मशीनों मैं मुश्किल से एक ही बार में इन प्रक्रियाओं में से एक संभाल कर सकते हैं, कोई बात नहीं 16 (hyperthreaded दोहरी क्वाड-कोर) है कि वे डिफ़ॉल्ट रूप से भेजा उपयोग कर रहा हूँ पर अस्थायी अंतरिक्ष। मैं डिस्क पर सहेजे बिना इस प्रक्रिया को करने का एक तरीका ढूंढ रहा हूं। मेरा मानना है कि tar -xf $file -O <targetname>
का उपयोग कर व्यक्तिगत रूप से खींचने वाली फ़ाइलों के लिए प्रदर्शन दंड निषिद्ध होगा, लेकिन यह हो सकता है कि मैं किसके साथ फंस गया हूं।
क्या ऐसा करने का कोई तरीका है?
संपादित करें: के बाद से दो लोगों को पहले से ही इस गलती की है, मैं स्पष्ट करने के लिए जा रहा हूँ:
- प्रत्येक फ़ाइल समय में एक बिंदु का प्रतिनिधित्व करता है।
- प्रत्येक फ़ाइल को अलग से संसाधित किया जाता है।
- एक बार संसाधित हो जाने पर (इस मामले में फूरियर विश्लेषण पर एक संस्करण), प्रत्येक आउटपुट की एक पंक्ति देता है।
- इस आउटपुट को पूरे समय ऑटोकोरेलेशन जैसी चीजों को करने के लिए जोड़ा जा सकता है।
EDIT2: वास्तविक कोड:
for f in posns/*; do
~/data_analysis/intermediate_scattering_function < "$f"
done | ~/data_analysis/complex_autocorrelation.awk limit=1000 > inter_autocorr.txt
असम्पीडित फ़ाइल का कुल आकार क्या है? आपके पास कितना रैम है? –
100 के फाइलें * 4 केबी न्यूनतम फ़ाइल आकार = 400 एमबी। मेरे पास 16 जीबी है, इसलिए 16 बिना किसी मुद्दे के फिट होगा। – zebediah49
ठीक है, मैं आपको रैमडिस्क का उपयोग करने के लिए कहने जा रहा था, लेकिन @ हाराल्ड ब्रिंकहोफ पहले ही कर चुका है :) –