C++ ve OpenMP kullanarak paralel programlamaya hızlıca giriş yapıyoruz
Teknik kısmını bir kenara bırakarak en cabucak bir şekilde nasıl OpenMP ile uygulamamda paralel programlamayı etkinleştirebilirim sorusuna cevap olarak bu makaleyi hazırladım. Ç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.
#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.
Hemen kısa bir kodla paralel programlamaya girişimizi yapalım.
#include <iostream>
#include <ctime>
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.