हाल के वर्षों में, कई पुस्तकालय / सॉफ्टवेयर परियोजनाएं सामने आई हैं जो सामान्य रूप से डेटा-संचालित साझा-मेमोरी समानता के कुछ रूप या अन्य प्रदान करती हैं।
मुख्य विचार यह है कि स्पष्ट रूप से थ्रेडेड कोड लिखने के बजाय, प्रोग्रामर अपने एल्गोरिदम को अंतर-निर्भर कार्यों के रूप में लागू करते हैं जो तब साझा-मेमोरी मशीन पर एक सामान्य-उद्देश्य मिडलवेयर द्वारा गतिशील रूप से अनुसूचित होते हैं।
ऐसे पुस्तकालयों के उदाहरण हैं:
प्रश्न : मूल रूप से एमएजीएमए समानांतर रैखिक बीजगणित पुस्तकालय के लिए डिज़ाइन किया गया है , लगता है कि इसका उपयोग समानांतर फास्ट मल्टीपोल विधि के लिए भी किया गया है।
Cilk : मूल रूप से एक MIT- आधारित परियोजना है, जिसे अब Intel द्वारा समर्थित किया गया है, C को भाषा / संकलक एक्सटेंशन के रूप में कार्यान्वित किया गया है, जिसका उपयोग Cilkchess कंप्यूटर शतरंज सॉफ्टवेयर में किया जाता है और प्रयोगात्मक रूप से FFTW में किया जाता है ।
एसएमपी सुपरसालकर : बार्सिलोना सुपरकंप्यूटिंग सेंटर में विकसित किया गया,
#pragma
एक्सटेंशन के आधार पर कई मायनों में सिलक के समान है ।StarPU : समान लाइब्रेरी आधारित "कोडलेट्स" जिसे GPU सहित कई अलग-अलग आर्किटेक्चर पर संकलित और निर्धारित किया जा सकता है।
ओपनएमपी कार्य: संस्करण 3.0 के अनुसार, ओपनएमपी ने "कार्य" पेश किया जो कि अतुल्यकालिक रूप से निर्धारित किया जा सकता है (विनिर्देश की धारा 2.7 देखें)।
इंटेल के थ्रेडिंग बिल्डिंग ब्लॉक्स : अतुल्यकालिक कार्यों को बनाने और लॉन्च करने के लिए C ++ कक्षाओं का उपयोग करता है, ट्यूटोरियल की धारा 11 देखें।
ओपनसीएल : मल्टी-कोर पर कार्य-आधारित समानता का समर्थन करता है।
हालांकि इन पुस्तकालयों / भाषा एक्सटेंशनों के आंतरिक कामकाज और विशिष्ट समस्याओं के लिए उनके आवेदन का वर्णन करने वाले बहुत सारे साहित्य हैं, मैं केवल उन बहुत कम उदाहरणों में आया हूं जो वैज्ञानिक कंप्यूटिंग अनुप्रयोगों में व्यवहार में उपयोग किए जा रहे हैं।
तो यहाँ सवाल यह है कि क्या कोई भी इन लाइब्रेरियों / भाषा एक्सटेंशनों, या समान, साझा-मेमोरी समानता के लिए किसी वैज्ञानिक कंप्यूटिंग कोड का उपयोग करता है?