Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah OpenMP?

Apakah OpenMP?

王林
王林ke hadapan
2023-09-12 15:29:021070semak imbas

Apakah OpenMP?

OpenMP ialah satu set arahan pengkompil dan API untuk atur cara yang ditulis dalam C, C++ atau FORTRAN yang menyediakan sokongan untuk pengaturcaraan selari dalam persekitaran memori yang dikongsi. OpenMP mengiktiraf kawasan selari sebagai blok kod yang boleh dijalankan secara selari. Pembangun aplikasi memasukkan arahan pengkompil ke dalam kod rantau selari yang mengarahkan perpustakaan masa jalan OpenMP untuk melaksanakan rantau itu secara selari. Program C berikut menggambarkan arahan pengkompil di atas kawasan selari yang mengandungi 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;
}

Apabila OpenMP menemui arahan ini

#pragma omp parallel

ia dicipta dengan sistem seberapa banyak teras pemprosesan sebagai benang. Oleh itu, untuk sistem dwi-teras, dua utas dicipta, untuk sistem quad-teras, empat utas dicipta dan seterusnya. Semua benang kemudian melaksanakan kawasan selari secara serentak. Setiap benang ditamatkan apabila ia keluar dari kawasan selari. OpenMP menyediakan beberapa arahan tambahan untuk menjalankan kawasan kod secara selari, termasuk gelung selari.

Selain menyediakan arahan penyejajaran, OpenMP juga membenarkan pembangun memilih antara berbilang tahap selari. Contohnya, mereka boleh menetapkan bilangan utas secara manual. Ia juga membolehkan pembangun mengenal pasti sama ada data dikongsi antara benang atau benang-peribadi. OpenMP tersedia pada beberapa penyusun sumber terbuka dan komersial untuk sistem Linux, Windows dan Mac OS X.

Atas ialah kandungan terperinci Apakah OpenMP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam