openmp
सरल समानांतर उदाहरण
खोज…
वाक्य - विन्यास
#pragma omp parallel
इंगित करता है कि निम्नलिखित खंड को सभी थ्रेड्स द्वारा निष्पादित किया जाएगा।int omp_get_num_threads (void)
: समानांतर क्षेत्र (थ्रेड्स की उर्फ टीम) पर काम कर रहे थ्रेड्स की संख्या लौटाता है।int omp_get_thread_num (void)
: कॉलिंग थ्रेड के पहचानकर्ता (0 से N-1 तक की श्रेणी देता है, जहां N कोomp_get_num_threads()
) सेomp_get_num_threads()
।
टिप्पणियों
आप पूरे एप्लिकेशन के लिए या निर्दिष्ट क्षेत्र के लिए क्रमशः थ्रेड निष्पादित करने की संख्या को इंगित करने के लिए #pragma parallel
भीतर OMP_NUM_THREADS
पर्यावरण चर या num_threads
निर्देश का उपयोग कर सकते हैं।
OpenMP का उपयोग करके समानांतर हैलो दुनिया
निम्नलिखित सी कोड OpenMP समानांतर प्रोग्रामिंग मॉडल का उपयोग करता करने के लिए धागा आईडी और धागे की संख्या लिखने के stdout
से अधिक थ्रेड का उपयोग कर।
#include <omp.h>
#include <stdio.h>
int main ()
{
#pragma omp parallel
{
// ID of the thread in the current team
int thread_id = omp_get_thread_num();
// Number of threads in the current team
int nthreads = omp_get_num_threads();
printf("I'm thread %d out of %d threads.\n", thread_id, nthreads);
}
return 0;
}
फोरट्रान 90+ में समान कार्यक्रम दिखता है:
program Hello
use omp_lib, only: omp_get_thread_num, omp_get_num_threads
implicit none
integer :: thread_id
integer :: nthreads
!$omp parallel private( thread_id, nthreads )
! ID of the thread in the current team
thread_id = omp_get_thread_num()
! Number of threads in the current team
nthreads = omp_get_num_threads()
print *, "I'm thread", thread_id, "out of", nthreads, "threads."
!$omp end parallel
end program Hello