mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-28 05:51:04 +00:00
40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
|
/******************************************************************************
|
||
|
* FILE: omp_hello.c
|
||
|
* DESCRIPTION:
|
||
|
* OpenMP Example - Hello World - C/C++ Version
|
||
|
* In this simple example, the master thread forks a parallel region.
|
||
|
* All threads in the team obtain their unique thread number and print it.
|
||
|
* The master thread only prints the total number of threads. Two OpenMP
|
||
|
* library routines are used to obtain the number of threads and each
|
||
|
* thread's number.
|
||
|
* AUTHOR: Blaise Barney 5/99
|
||
|
* LAST REVISED: 04/06/05
|
||
|
******************************************************************************/
|
||
|
#include <omp.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
int main (int argc, char *argv[]) {
|
||
|
|
||
|
int nthreads, tid;
|
||
|
|
||
|
/* Fork a team of threads giving them their own copies of variables */
|
||
|
#pragma omp parallel private(nthreads, tid)
|
||
|
{
|
||
|
|
||
|
/* Obtain thread number */
|
||
|
tid = omp_get_thread_num();
|
||
|
printf("Hello World from thread = %d\n", tid);
|
||
|
|
||
|
/* Only master thread does this */
|
||
|
if (tid == 0)
|
||
|
{
|
||
|
nthreads = omp_get_num_threads();
|
||
|
printf("Number of threads = %d\n", nthreads);
|
||
|
}
|
||
|
|
||
|
} /* All threads join master thread and disband */
|
||
|
|
||
|
return 0;
|
||
|
}
|