C++ ve OpenMP kullanarak paralel programlamaya hızlıca giriş yapıyoruz. Teknik kısmını bir kenara bırakarak çabucak bir şekilde nasıl OpenMP ile uygulamamda paralel programlama yı etkinleştirebilirim sorusuna cevap olarak bu makale hazırlanmıştır. Çok fazla detaydan ziyade uygulama bazında nerelere nasıl uygulanır gibi konular üzerinde duracağız.
OpenMP kütüphanesini kullanmak için omp.h dosyasını kaynak dosyalarımıza eklemeliyiz.
1 |
#include <omp.h> |
Tabi bu dosyayı eklemekle OpenMP kullanılabilir hale gelmiyor. Etkinleştirmek için derleyici bazındada bir takım anahtarları açmalıyız.
GCC’de bu işlem -mopenmp seçeneği ile etkinleştirilirken VC++ da ise /openmp seçeneği OpenMP kütüphanesini etkinleştirir.
Şimdi gelelim örneklerimize.
Kısa bir kod bloğu ile paralel programlamaya girişimizi yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <ctime> #include <omp.h> using namespace std; int main() { int dizi[64]; memset(dizi, 0, 64); #pragma omp parallel for for (int i = 0; i < 64; i++) { dizi[i] = rand(); } return 0; } |
Şimdi buradaki bir noktaya dikkat etmemiz gerekiyor. Paralel programlamada derleyiciye nerelerin dağıtılacağını bildirdiğimiz satır. Yani omp parallel for satırı. Burda biz derleyiciye işlettiğimiz döngünün çekirdekler arasında paylaştırılacağını bildiriyoruz.