38 const char *
value = getenv(
"KMP_TEAMS_THREAD_LIMIT");
40 fprintf(stderr,
"KMP_TEAMS_THREAD_LIMIT must be set!\n");
43 max_nteams = atoi(
value);
54 omp_proc_bind_t proc_bind = omp_proc_bind_spread;
55 const char *
value = getenv(
"KMP_TEAMS_PROC_BIND");
57 if (strcmp(
value,
"spread") == 0) {
58 proc_bind = omp_proc_bind_spread;
59 }
else if (strcmp(
value,
"close") == 0) {
60 proc_bind = omp_proc_bind_close;
61 }
else if (strcmp(
value,
"primary") == 0 || strcmp(
value,
"master") == 0) {
62 proc_bind = omp_proc_bind_master;
65 "KMP_TEAMS_PROC_BIND should be one of spread, close, primary");
72int main(
int argc,
char **argv) {
73 int i, nteams, max_nteams, factor;
76 omp_proc_bind_t teams_proc_bind;
86 for (
i = 0;
i < max_nteams; ++
i)
87 teams_places[
i] = NULL;
92 if (teams_proc_bind == omp_proc_bind_master) {
98 for (nteams = 1; nteams <= max_nteams;
99 nteams = nteams * factor / (factor - 1) + 1) {
102 for (
j = 0;
j < 2; ++
j) {
104 #pragma omp teams num_teams(nteams)
111 for (
i = 0;
i < nteams; ++
i)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
static place_list_t * topology_alloc_openmp_places()
static place_list_t * topology_alloc_openmp_partition()
static void proc_bind_check(omp_proc_bind_t proc_bind, const place_list_t *parent, place_list_t **children, int nchildren)
static void topology_free_places(place_list_t *places)
static void set_default_max_nteams()
static omp_proc_bind_t get_teams_proc_bind()
static int get_max_nteams()