आगे बढ़ने के लिए, यह होमवर्क है। ऐसा कहा जा रहा है, यह बेहद खुला है और हमारे पास इस समस्या के बारे में सोचने के तरीके के बारे में लगभग शून्य मार्गदर्शन है (या सामान्य रूप से समांतर एल्गोरिदम)। मैं सही दिशा में पॉइंटर्स और पूर्ण समाधान नहीं चाहता हूं। कोई भी पढ़ाई जो मदद कर सकती है वह भी उत्कृष्ट होगी।प्रथम-घटना समानांतर स्ट्रिंग मिलान एल्गोरिदम
मैं समांतर एल्गोरिदम का उपयोग करके बड़ी मात्रा में टेक्स्ट में पैटर्न की पहली घटना से मेल खाने के लिए एक कुशल तरीके से काम कर रहा हूं। पैटर्न सरल चरित्र मिलान है, कोई regex शामिल नहीं है। मै मैचों के सभी खोजने के संभावित तरीके से आने में सफल रहा हूं, लेकिन इसके बाद मुझे सभी मैचों में देखना और पहला ढूंढना होगा।
तो सवाल यह है कि, क्या प्रक्रियाओं और स्कैनिंग के बीच पाठ को तोड़ने में मुझे और सफलता मिल जाएगी? या यह सबसे अच्छा होगा कि प्रक्रिया के सिंक्रनाइज़ किए गए कुछ प्रकार की खोज हो जहां j'th प्रक्रिया पैटर्न के j'th चरित्र की खोज करे? यदि तब सभी प्रक्रियाएं उनके मैच के लिए सच होती हैं, तो प्रक्रियाएं बताई गई पैटर्न से मेल खाने में अपनी स्थिति बदलती हैं और फिर से आगे बढ़ती रहती हैं, जब तक कि सभी पात्रों का मिलान नहीं हो जाता है और फिर पहले मैच की अनुक्रमणिका लौटाते हैं।
जो अब तक है वह बेहद बुनियादी है, और संभावना से अधिक काम नहीं करता है। मैं इसे लागू नहीं करूँगा, लेकिन किसी भी पॉइंटर्स की सराहना की जाएगी।
पी प्रोसेसर, लंबाई टी का एक पाठ, और लंबाई एल के एक पैटर्न, और उपयोग एल प्रोसेसर की एक छत के साथ:
for i=0 to t-l: for j=0 to p: processor j compares the text[i+j] to pattern[i+j] On false match: all processors terminate current comparison, i++ On true match by all processors: Iterate p characters at a time until L characters have been compared If all L comparisons return true: return i (position of pattern) Else: i++
आपके प्रस्तावित एल्गोरिदम के साथ समस्या यह है कि प्रोसेसर के बीच संचार * बहुत अधिक ओवरहेड संचार है। जब तक पैटर्न बहुत लंबा न हो, तब तक आप बेहतर होंगे कि प्रत्येक प्रोसेसर किसी विशेष बिंदु पर एक मैच की तलाश करे, और सबसे शुरुआती मैच पर समाप्त हो जाए। –
PRAM मॉडल निर्दिष्ट किया गया था? या आप किसी को मान सकते हैं? आपके द्वारा या समस्या से लगाई गई एल प्रोसेसर सीमा भी है? –
एल प्रोसेसर सीमा मेरे द्वारा निर्दिष्ट है। मुझे लगता है कि स्मृति साझा नहीं की गई है, क्योंकि यह एमपीआई का उपयोग करने का एक बहाना है। – Xorlev