2012-03-06 16 views
5

मेरे पास डेटा प्रोसेसिंग मॉडल है जो डेटा खंडों को संसाधित करने वाले एल्गोरिदम की कई श्रृंखलाओं से बना है। प्रत्येक श्रृंखला एल्गोरिदम का एक ग्राफ है, जिसे मैंने टीबीबी ग्राफ वर्ग के साथ कार्यान्वित किया है।इंटेल टीबीबी: ग्राफ का पूल

अब मुझे "ग्राफ के पूल" जैसे कुछ होना चाहिए, यानी कार्यों का एक पूल, उनमें से प्रत्येक में एक tbb :: ग्राफ होता है। इस तरह से मैं डेटा भागों पर समानांतर में एल्गोरिदम की श्रृंखला चला सकता हूं।

क्या आप "ग्राफ के पूल" के समान किसी भी टीबीबी उदाहरण को इंगित कर सकते हैं, या आप इसे लागू करने के लिए सुझाव दे सकते हैं और संकेत दे सकते हैं?

उत्तर

1

मेरा सुझाव यह होगा कि आप टीबीबी :: concurrent_queue या tbb :: concurrent_vector का उपयोग करते हैं, इसका लाभ यह है कि आप इसे एकाधिक एक्सेस के दौरान आकार बदल सकते हैं। इसके लिए मेरा व्यक्तिगत संकेत, लॉक/ग्राफ़ ऑब्जेक्ट बनाएं ताकि आप किसी ऑब्जेक्ट को समानांतर में कभी संशोधित न करें।

http://threadingbuildingblocks.org/wiki/index.php?title=Concurrent_Vector

कतार के लिए एक उदाहरण यहां पाया जा सकता: https://sites.google.com/site/samplecodesproject/tbb/containers-3/concurrent_queue

0

मुझे लगता है मैं पूरी तरह से समझते कि वास्तव में आप क्या हासिल करने की कोशिश, लेकिन कोशिश करते हैं यकीन नहीं है :)। ऐसा लगता है कि प्रोसेसिंग के लिए फ्लो ग्राफ़ में नए डेटा हिस्से को फेंकने के लिए आपको केवल एक चीज चाहिए जो उचित स्रोत_नोड (https://www.threadingbuildingblocks.org/docs/help/reference/flow_graph/source_node_cls.htm) है। फ़्लो ग्राफ आवृत्ति को एल्गोरिदम के रूप में माना जा सकता है (जैसे कि tbb :: parallel_pipeline) थोड़ा अलग तरीके से लिखा गया है। इसे सूची या वेक्टर जैसे डेटा संरचना के रूप में नहीं माना जाना चाहिए। तो सबसे अधिक संभावना है कि आपको ग्राफ के पूल की आवश्यकता नहीं है :)