What is OpenMP?

OpenMP adalah seperangkat arahan kompiler serta API untuk program yang ditulis dalam C, C ++, atau FORTRAN yang menyediakan dukungan untuk pemrograman paralel di lingkungan memori bersama. OpenMP mengidentifikasi wilayah paralel sebagai blok kode yang dapat berjalan secara paralel. Pengembang aplikasi memasukkan arahan kompiler ke dalam kode mereka di wilayah paralel, dan arahan ini menginstruksikan pustaka run-time OpenMP untuk mengeksekusi wilayah secara paralel. Program C berikut menggambarkan arahan kompiler di atas wilayah paralel yang berisi pernyataan printf () –

#include <omp.h>
#include <stdio.h>
int main(int argc, char *argv[]){
   /* sequential code */
   #pragma omp parallel{
      printf("I am a parallel region.");
   }
   /* sequential code */
   return 0;
}

Ketika OpenMP menemukan arahan

#pragma omp parallel

Ini menciptakan banyak utas yang memproses inti dalam sistem. Jadi, untuk sistem dual-core, dua thread dibuat, untuk sistem quad-core, empat thread dibuat; Dan seterusnya. Kemudian semua utas secara bersamaan menjalankan wilayah paralel. Ketika setiap utas keluar dari wilayah paralel, itu diakhiri. OpenMP menyediakan beberapa arahan tambahan untuk menjalankan wilayah kode secara paralel, termasuk paralelisasi loop.

Selain memberikan arahan untuk paralelisasi, OpenMP memungkinkan pengembang untuk memilih di antara beberapa level paralelisme. E.g., mereka dapat mengatur jumlah utas secara manual. Ini juga memungkinkan pengembang untuk mengidentifikasi apakah data dibagikan di antara utas atau pribadi ke utas. OpenMP tersedia pada beberapa kompiler open-source dan komersial untuk sistem Linux, Windows, dan Mac OS X.