एक छवि के हिस्टोग्राम के लिए धारावाहिक और समानांतर (एमपीपी का उपयोग) कोड

क्या कोई मुझे सी भाषा में एक छवि के हिस्टोग्राम पीढ़ी के लिए कोड लिखने में मदद कर सकता है? मुझे मूल तर्क पता है लेकिन कोड लिखने में सक्षम नहीं है। मैं इसके लिए समानांतर प्रोग्राम चाहता हूं।

 for(i=0; i<256;i++)
 histogram[i]=0;   
  for(i=0;i
0
जोड़ा संपादित
विचारों: 1

2 उत्तर

मुझे लगता है कि मैं इस कार्य को समानांतर करने के लिए धागे (बनाम प्रक्रियाओं) का उपयोग करूंगा (यूनिक्स पर pthreads)। ऐसा करने में, सभी थ्रेड डेटा के समान पूल को साझा कर सकते हैं (प्रक्रिया सीमाओं में छवि डेटा की विशाल मात्रा की प्रतिलिपि बनाने के बजाय)।

एक दृष्टिकोण यह निर्धारित करने के लिए सिस्टम कॉल से पूछताछ करेगा कि कितने सीपीयू थ्रेड्स (एन) सिस्टम में हैं। फिर, आवंटित (एन) पृथक हिस्टोग्राम सरणी। छवि को (एन) क्षैतिज स्लाइस में विभाजित करें। फिर, धागे (एन) धागे बनाएं और प्रत्येक को एक अलग संख्या (1..एन) पास करें। प्रत्येक धागा हिस्टोग्राम डेटा को एक अलग टुकड़ा के लिए संसाधित करेगा और परिणामों को एक अलग हिस्टोग्राम सरणी में रखेगा।

मुख्य धागा (एन) कार्यकर्ता धागे को पूरा करने के लिए इंतजार कर रहा है और फिर (n) हिस्टोग्राम सरणी को अंतिम हिस्टोग्राम सरणी में जोड़ता है।

समस्या से संपर्क करने का यही एक तरीका है।

0
जोड़ा
thanx बहुत यह वास्तव में सहायक है ..
जोड़ा लेखक Dharmita bhatt, स्रोत

OpenMP makes this nice and simple:

#pragma omp for
 for(i=0; i<256;i++)
 histogram[i]=0;   
  for(i=0;i
0
जोड़ा
आपकी मदद के लिए thnx। मुझे विंडोज़ ओएस पर एमपीआई का उपयोग करके इसे लागू करना होगा।
जोड़ा लेखक Dharmita bhatt, स्रोत