OpenMP, C, C++, या FORTRAN में लिखे प्रोग्राम के लिए कंपाइलर निर्देशों का एक सेट और एक API है जो शेयर्ड-मेमोरी वातावरण में समानांतर प्रोग्रामिंग के लिए समर्थन प्रदान करता है। OpenMP समानांतर क्षेत्रों की पहचान करता है जो कोड के ब्लॉक हैं जो समानांतर में चल सकते हैं।
उदाहरण
#include <omp.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
/* अनुक्रमिक कोड */
#pragma omp parallel {
printf("I am a parallel region.");
}
/* अनुक्रमिक कोड */
return 0;
}
जब OpenMP को `#pragma omp parallel` निर्देश मिलता है, तो यह सिस्टम में प्रोसेसिंग कोर जितने थ्रेड बनाता है। फिर सभी थ्रेड्स एक साथ समानांतर क्षेत्र को निष्पादित करते हैं।
OpenMP डेवलपर्स को समानांतरता के कई स्तरों को चुनने की अनुमति देता है, जैसे थ्रेड्स की संख्या मैन्युअल रूप से सेट करना। यह डेटा को शेयर्ड या प्राइवेट के रूप में पहचानने की भी अनुमति देता है। OpenMP Linux, Windows, और Mac OS X के लिए कई ओपन-सोर्स और वाणिज्यिक कंपाइलर्स पर उपलब्ध है।