अस्पष्ट विषय प्रश्न के लिए खेद है, लेकिन मैं कुछ अकादमिक वीडियो प्रोसेसिंग दिनचर्या पर काम कर रहा हूं। एल्गोरिदम MATLAB में लिखे गए हैं, और विकास के उद्देश्यों के लिए यह ठीक है, लेकिन यह लगभग 60spf, या लगभग .0166fps पर एक वीडियो को संसाधित करता है। कहने की जरूरत नहीं है, यह डेमो के लिए पर्याप्त नहीं होगा और इसलिए, मेरी ग्रीष्मकालीन नौकरी दिनचर्या को उस चीज़ में परिवर्तित करना है जो बहुत तेजी से चलती है।एक शर्मनाक समानांतर समस्या के लिए सबसे अच्छा समाधान क्या है?
मैंने सीयूडीए, एनवीडिया के जीपीजीपीयू समाधान के लिए कोड के सबसे धीमे हिस्से को फिर से लिखा है। हालांकि, कोड का एक बड़ा हिस्सा भी है जो सीपीयू पर बेहतर होता है, क्योंकि यह अपेक्षाकृत धारावाहिक है। समस्या यह है कि, मुझे दी गई मशीन में 2 ज़ीऑन प्रोसेसर हैं, जिसमें 8 लॉजिकल कोर कुल हैं, और केवल एक कोर के लिए कोडिंग करके जीपीयू कोड को बाधित करना शर्म की बात है। वीडियो रूपांतरण प्रक्रिया कार्यात्मक है कि प्रत्येक फ्रेम अन्य फ्रेम पर निर्भर नहीं है, इसलिए मैं सोच रहा था कि किसी प्रकार की एसिंक्रोनस कतार/स्ट्रीम सबसे अच्छी होगी।
यहां मेरा प्रश्न है: गति उपज के प्रयास के सर्वोत्तम अनुपात के साथ इस प्रकार के समांतरता को प्राप्त करने का सबसे अच्छा तरीका क्या होगा?
कुछ समाधान जो मैंने देखा है ओपनएमपी, नेट टीपीएल, और बस सरल पठ्रेड हैं।
मेरे पास केवल असीमित प्रोग्रामिंग के लिए बुनियादी जोखिम है, इसलिए मैं म्यूटेक्स और बाधाओं के साथ गड़बड़ के बजाय लाइब्रेरी या कुछ का उपयोग करता हूं और कई बार पैर में खुद को गोली मारता हूं। मुझे सीखने में कोई फर्क नहीं पड़ता, क्योंकि यह इस गर्मी के लिए मेरे लक्ष्यों में से एक है, लेकिन साथ ही, समांतरता हार्ड है। हालांकि, अगर गति अंतर वास्तव में बहुत ही ध्यान देने योग्य है, तो मैं अपने बालों को कुछ हफ्तों तक खींचने के लिए तैयार हूं। : पी
अग्रिम धन्यवाद।
यदि आप समस्या को कई हिस्सों में तोड़ सकते हैं जिसे हस्तक्षेप के बिना (अच्छी तरह से परिभाषित सिंक्रनाइज़ेशन पॉइंट्स के साथ) पर काम किया जा सकता है, तो "पुस्तकालय" का उपयोग केवल चीनी होना चाहिए ... एक सरल तरीका सिर्फ उपयोग करना है थ्रेड पूल, समवर्ती कतार (इनपुट के लिए एक, आउटपुट के लिए एक), और केवल एक्सेस ऑब्जेक्ट्स/डेटा जो कि थ्रेड "मालिक" है (इसे अपरिवर्तनीय बाहरी संरचनाओं में बढ़ाया जा सकता है)। –