105c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh#include <stdio.h> 205c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh#include <stdlib.h> 305c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh#include <omp.h> 405c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh#include <sys/sysconf.h> 505c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh 605c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsiehint main (int argc, char *argv[]) 705c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh{ 805c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh int nthreads, tid; 905c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh printf("SC_NPROCESSORS_ONLN: %d\n", sysconf (_SC_NPROCESSORS_ONLN)); 10c1ed11ce27477f27da49da85e953475b6c47d992Andrew Hsieh printf("SC_NPROCESSORS_CONF: %d\n", sysconf (_SC_NPROCESSORS_CONF)); 1105c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh #pragma omp parallel default(shared) private(nthreads, tid) 1205c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh /* Fork a team of threads giving them their own copies of variables */ 1305c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh { 1405c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh /* Obtain thread number */ 1505c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh tid = omp_get_thread_num(); 1605c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh printf("Hello World from thread = %d\n", tid); 1705c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh /* Only master thread does this */ 1805c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh if (tid == 0) 1905c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh { 2005c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh nthreads = omp_get_num_threads(); 2105c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh printf("Number of threads = %d\n", nthreads); 2205c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh } 2305c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh } /* All threads join master thread and disband */ 2405c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh 2505c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh return 0; 2605c9d7bff3feb6be2b5cfb9a83caa612baf66104Andrew Hsieh} 27