সংক্ষিপ্ত বিবরণ
OpenMP (Open Multi-Processing) হল কম্পাইলার ডিরেক্টিভ ও API সেট যা শেয়ার্ড-মেমরি সিস্টেমে প্যারালল প্রোগ্রামিং সক্ষম করে। C, C++, Fortran-এ সমর্থিত।
কীভাবে কাজ করে
- `#pragma omp parallel` ডিরেক্টিভ দিয়ে প্যারালল রিজন চিহ্নিত করুন
- রানটাইম স্বয়ংক্রিয়ভাবে CPU কোর সংখ्यानুসারি থ্রেড তৈরি করে
- ডুয়াল-কোরে ২ থ্রেড, কোয়াড-কোরে ৪ থ্রেড
উদাহরণ
#include <omp.h>
#include <stdio.h>
int main() {
/* সিকোয়েনশিয়াল কোড */
#pragma omp parallel
printf("I am a parallel region.\n");
/* সিকোয়েনশিয়াল কোড */
return 0;
}
অতিরিক্ত বৈশিষ্ট্য
- লুপ প্যারাললাইজেশন: `#pragma omp parallel for`
- থ্রেড সংখ্যা ম্যানুয়ালি সেট: `omp_set_num_threads(n)`
- ডেটা শেয়ারিং: `shared`, `private`, `reduction` ক্লজ
- Linux, Windows, macOS-এ GCC, Clang, MSVC, Intel Compiler-এ উপলব্ধ
কম্পাইল
gcc -fopenmp program.c -o program