|  | #include <sys/sysinfo.h> | 
|  | #include <omp.h> | 
|  | #include <stdio.h> | 
|  | #include <stdlib.h> | 
|  | #include <parlib/vcore.h> | 
|  |  | 
|  | int main (int argc, char *argv[]) | 
|  | { | 
|  | int nthreads, tid; | 
|  | printf("get_nprocs: %d\n", get_nprocs()); | 
|  | printf("SC_NPROCESSORS_ONLN: %d\n", sysconf (_SC_NPROCESSORS_ONLN)); | 
|  | printf("max num vcores: %d\n", max_vcores()); | 
|  |  | 
|  | /* 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 */ | 
|  |  | 
|  | } |