Lines Matching defs:task_team

27 static void __kmp_enable_tasking(kmp_task_team_t *task_team,
32 kmp_task_team_t *task_team);
327 kmp_task_team_t *task_team = thread->th.th_task_team;
345 // The first check avoids building task_team thread data if serialized
356 if (!KMP_TASKING_ENABLED(task_team)) {
357 __kmp_enable_tasking(task_team, thread);
359 KMP_DEBUG_ASSERT(TCR_4(task_team->tt.tt_found_tasks) == TRUE);
360 KMP_DEBUG_ASSERT(TCR_PTR(task_team->tt.tt_threads_data) != NULL);
363 thread_data = &task_team->tt.tt_threads_data[tid];
807 kmp_task_team_t *task_team =
895 } else if (task_team && task_team->tt.tt_found_proxy_tasks) {
1207 kmp_task_team_t *task_team = thread->th.th_task_team;
1210 if (!KMP_TASKING_ENABLED(task_team)) {
1214 __kmp_enable_tasking(task_team, thread);
1216 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];
1223 if (task_team->tt.tt_found_proxy_tasks == FALSE)
1224 TCW_4(task_team->tt.tt_found_proxy_tasks, TRUE);
1950 kmp_task_team_t *task_team = thread->th.th_task_team;
1951 if (task_team != NULL) {
1952 if (KMP_TASKING_ENABLED(task_team)) {
2573 kmp_task_team_t *task_team,
2581 KMP_DEBUG_ASSERT(task_team->tt.tt_threads_data !=
2584 thread_data = &task_team->tt.tt_threads_data[__kmp_tid_from_gtid(gtid)];
2643 // task_team thread_data before calling this routine.
2645 kmp_task_team_t *task_team,
2658 threads_data = task_team->tt.tt_threads_data;
2665 "task_team=%p ntasks=%d head=%u tail=%u\n",
2666 gtid, __kmp_gtid_from_thread(victim_thr), task_team,
2672 "task_team=%p ntasks=%d head=%u tail=%u\n",
2673 gtid, __kmp_gtid_from_thread(victim_thr), task_team,
2686 "task_team=%p ntasks=%d head=%u tail=%u\n",
2687 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
2700 if (!task_team->tt.tt_untied_task_encountered) {
2704 "T#%d: task_team=%p ntasks=%d head=%u tail=%u\n",
2705 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
2726 "T#%d: task_team=%p ntasks=%d head=%u tail=%u\n",
2727 gtid, __kmp_gtid_from_thread(victim_thr), task_team, ntasks,
2753 ("__kmp_steal_task: T#%d inc unfinished_threads to %d: task_team=%p\n",
2754 gtid, count + 1, task_team));
2765 "task_team=%p ntasks=%d head=%u tail=%u\n",
2766 gtid, taskdata, __kmp_gtid_from_thread(victim_thr), task_team,
2787 kmp_task_team_t *task_team = thread->th.th_task_team;
2799 if (task_team == NULL || current_task == NULL)
2807 threads_data = (kmp_thread_data_t *)TCR_PTR(task_team->tt.tt_threads_data);
2810 nthreads = task_team->tt.tt_nproc;
2811 unfinished_threads = &(task_team->tt.tt_unfinished_threads);
2812 KMP_DEBUG_ASSERT(nthreads > 1 || task_team->tt.tt_found_proxy_tasks);
2820 task = __kmp_remove_my_task(thread, gtid, task_team, is_constrained);
2874 task = __kmp_steal_task(other_thread, gtid, task_team,
2950 "unfinished_threads to %d task_team=%p\n",
2951 gtid, count, task_team));
2956 // Decrementing task_team->tt.tt_unfinished_threads can allow the master
3019 static void __kmp_enable_tasking(kmp_task_team_t *task_team,
3027 KMP_DEBUG_ASSERT(task_team != NULL);
3030 nthreads = task_team->tt.tt_nproc;
3035 is_init_thread = __kmp_realloc_task_threads_data(this_thr, task_team);
3045 threads_data = (kmp_thread_data_t *)TCR_PTR(task_team->tt.tt_threads_data);
3115 NULL; // Free list for task_team data structures
3174 // Assumes that the new array size is given by task_team -> tt.tt_nproc.
3175 // The current size is given by task_team -> tt.tt_max_threads.
3177 kmp_task_team_t *task_team) {
3182 if (TCR_4(task_team->tt.tt_found_tasks)) {
3187 threads_data_p = &task_team->tt.tt_threads_data;
3188 nthreads = task_team->tt.tt_nproc;
3189 maxthreads = task_team->tt.tt_max_threads;
3194 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_threads_lock);
3196 if (!TCR_4(task_team->tt.tt_found_tasks)) {
3211 "threads data for task_team %p, new_size = %d, old_size = %d\n",
3212 __kmp_gtid_from_thread(thread), task_team, nthreads, maxthreads));
3235 "threads data for task_team %p, size = %d\n",
3236 __kmp_gtid_from_thread(thread), task_team, nthreads));
3252 task_team->tt.tt_max_threads = nthreads;
3272 TCW_SYNC_4(task_team->tt.tt_found_tasks, TRUE);
3275 __kmp_release_bootstrap_lock(&task_team->tt.tt_threads_lock);
3282 static void __kmp_free_task_threads_data(kmp_task_team_t *task_team) {
3283 __kmp_acquire_bootstrap_lock(&task_team->tt.tt_threads_lock);
3284 if (task_team->tt.tt_threads_data != NULL) {
3286 for (i = 0; i < task_team->tt.tt_max_threads; i++) {
3287 __kmp_free_task_deque(&task_team->tt.tt_threads_data[i]);
3289 __kmp_free(task_team->tt.tt_threads_data);
3290 task_team->tt.tt_threads_data = NULL;
3292 __kmp_release_bootstrap_lock(&task_team->tt.tt_threads_lock);
3301 kmp_task_team_t *task_team = NULL;
3311 task_team = __kmp_free_task_teams;
3312 TCW_PTR(__kmp_free_task_teams, task_team->tt.tt_next);
3313 task_team->tt.tt_next = NULL;
3318 if (task_team == NULL) {
3325 task_team = (kmp_task_team_t *)__kmp_allocate(sizeof(kmp_task_team_t));
3326 __kmp_init_bootstrap_lock(&task_team->tt.tt_threads_lock);
3328 // task_team -> tt.tt_threads_data = NULL;
3329 // task_team -> tt.tt_max_threads = 0;
3330 // task_team -> tt.tt_next = NULL;
3333 TCW_4(task_team->tt.tt_found_tasks, FALSE);
3334 TCW_4(task_team->tt.tt_found_proxy_tasks, FALSE);
3335 task_team->tt.tt_nproc = nthreads = team->t.t_nproc;
3337 KMP_ATOMIC_ST_REL(&task_team->tt.tt_unfinished_threads, nthreads);
3338 TCW_4(task_team->tt.tt_active, TRUE);
3340 KA_TRACE(20, ("__kmp_allocate_task_team: T#%d exiting; task_team = %p "
3342 (thread ? __kmp_gtid_from_thread(thread) : -1), task_team,
3343 KMP_ATOMIC_LD_RLX(&task_team->tt.tt_unfinished_threads)));
3344 return task_team;
3350 void __kmp_free_task_team(kmp_info_t *thread, kmp_task_team_t *task_team) {
3351 KA_TRACE(20, ("__kmp_free_task_team: T#%d task_team = %p\n",
3352 thread ? __kmp_gtid_from_thread(thread) : -1, task_team));
3357 KMP_DEBUG_ASSERT(task_team->tt.tt_next == NULL);
3358 task_team->tt.tt_next = __kmp_free_task_teams;
3359 TCW_PTR(__kmp_free_task_teams, task_team);
3370 kmp_task_team_t *task_team;
3375 while ((task_team = __kmp_free_task_teams) != NULL) {
3376 __kmp_free_task_teams = task_team->tt.tt_next;
3377 task_team->tt.tt_next = NULL;
3380 if (task_team->tt.tt_threads_data != NULL) {
3381 __kmp_free_task_threads_data(task_team);
3383 __kmp_free(task_team);
3411 KA_TRACE(10, ("__kmp_wait_to_unref_task_team: T#%d task_team == NULL\n",
3426 "unreference task_team\n",
3451 // __kmp_task_team_setup: Create a task_team for the current team, but use
3456 // If this task_team hasn't been created yet, allocate it. It will be used in
3464 KA_TRACE(20, ("__kmp_task_team_setup: Master T#%d created new task_team %p "
3473 // other task_team; make sure it is allocated and properly initialized. As
3475 // previous task_team struct(above), until they receive the signal to stop
3485 "task_team %p for team %d at parity=%d\n",
3491 kmp_task_team_t *task_team = team->t.t_task_team[other_team];
3492 if (!task_team->tt.tt_active ||
3493 team->t.t_nproc != task_team->tt.tt_nproc) {
3494 TCW_4(task_team->tt.tt_nproc, team->t.t_nproc);
3495 TCW_4(task_team->tt.tt_found_tasks, FALSE);
3496 TCW_4(task_team->tt.tt_found_proxy_tasks, FALSE);
3497 KMP_ATOMIC_ST_REL(&task_team->tt.tt_unfinished_threads,
3499 TCW_4(task_team->tt.tt_active, TRUE);
3503 KA_TRACE(20, ("__kmp_task_team_setup: Master T#%d reset next task_team "
3518 // Toggle the th_task_state field, to switch which task_team this thread
3526 ("__kmp_task_team_sync: Thread T#%d task team switched to task_team "
3542 kmp_task_team_t *task_team = team->t.t_task_team[this_thr->th.th_task_state];
3545 KMP_DEBUG_ASSERT(task_team == this_thr->th.th_task_team);
3547 if ((task_team != NULL) && KMP_TASKING_ENABLED(task_team)) {
3550 "(for unfinished_threads to reach 0) on task_team = %p\n",
3551 __kmp_gtid_from_thread(this_thr), task_team));
3556 &task_team->tt.tt_unfinished_threads),
3564 ("__kmp_task_team_wait: Master T#%d deactivating task_team %p: "
3566 __kmp_gtid_from_thread(this_thr), task_team));
3567 KMP_DEBUG_ASSERT(task_team->tt.tt_nproc > 1 ||
3568 task_team->tt.tt_found_proxy_tasks == TRUE);
3569 TCW_SYNC_4(task_team->tt.tt_found_proxy_tasks, FALSE);
3570 KMP_CHECK_UPDATE(task_team->tt.tt_untied_task_encountered, 0);
3571 TCW_SYNC_4(task_team->tt.tt_active, FALSE);
3621 kmp_task_team_t *task_team = taskdata->td_task_team;
3626 // If task_team is NULL something went really bad...
3627 KMP_DEBUG_ASSERT(task_team != NULL);
3630 kmp_thread_data_t *thread_data = &task_team->tt.tt_threads_data[tid];