diff --git a/runtime/src/kmp_tasking.cpp b/runtime/src/kmp_tasking.cpp index 6d19e89102ab43a797c06859b0d99c5ee0ec55eb..7afa7d8f6bf09cebb520bb90e86852abc7b2889a 100644 --- a/runtime/src/kmp_tasking.cpp +++ b/runtime/src/kmp_tasking.cpp @@ -373,7 +373,7 @@ __kmp_push_task(kmp_int32 gtid, kmp_task_t * task ) selected_queue = &task_team->tt.tt_task_queues_mem[KMP_LEVEL_MACHINE][0].qd; else #endif - if ( kaapi_wsqueue_empty(&task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd->td_wsdeque)) + if ( kaapi_wsqueue_empty(&task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd.td_wsdeque)) selected_queue = &task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd; else selected_queue = &task_team->tt.tt_task_queues[KMP_LEVEL_THREAD][tid].qd; @@ -548,7 +548,7 @@ __kmp_push_task(kmp_int32 gtid, kmp_task_t * task ) ); else #if LIBOMP_USE_AFFINITY - if (select_queue == &task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd) + if (selected_queue == &task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd) err = kaapi_wsqueue_push_task( pqueue, isremote, @@ -2703,7 +2703,7 @@ __kmp_remove_my_task( kmp_info_t * thread, kmp_int32 cpu, kmp_int32 node, kmp_in { #if LIBOMP_USE_AFFINITY kmp_int32 tid = thread->th.th_info.ds.ds_tid; - if (selected_struct_queue == &task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid].qd) + if (selected_struct_queue == &task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][tid]) taskdata = __kaapi_wsqueue_pop_task( &(selected_struct_queue->qd.td_wsdeque) ); else #endif @@ -3618,6 +3618,8 @@ static int __kmp_realloc_task_threads_data(kmp_info_t *thread, task_team->tt.tt_task_queues[KMP_LEVEL_THREAD] = (kmp_queue_data_t *) __kmp_allocate( nthreads * sizeof(kmp_queue_data_t)); #if LIBOMP_USE_AFFINITY + task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD] = + (kmp_queue_data_t *) __kmp_allocate( nthreads * sizeof(kmp_queue_data_t)); if (task_team->tt.tt_task_queues[KMP_LEVEL_CORE]) __kmp_free( task_team->tt.tt_task_queues[KMP_LEVEL_CORE] ); task_team->tt.tt_task_queues[KMP_LEVEL_CORE] = @@ -3639,11 +3641,10 @@ static int __kmp_realloc_task_threads_data(kmp_info_t *thread, #endif ); #if LIBOMP_USE_AFFINITY - __kmp_init_task_deque(&task_team->tt.tt_private_task_queues[KMP_LEVEL_THREAD][i], + __kmp_init_task_deque(&task_team->tt.tt_task_private_queues[KMP_LEVEL_THREAD][i], KMP_LEVEL_THREAD, i, __kmp_cpu2node(i) - 0 ); #endif } @@ -3711,10 +3712,10 @@ static int __kmp_realloc_task_threads_data(kmp_info_t *thread, i = 0; KMP_CPU_SET_ITERATE(phy_index, task_team->tt.tt_nodes_mask) { - __kmp_init_task_deque(&task_team->tt.tt_task_queues[KMP_LEVEL_NUMA][i], KMP_LEVEL_NUMA, i, phy_index); - __kmp_init_task_deque(&task_team->tt.tt_task_private_queues[KMP_LEVEL_NUMA][i], KMP_LEVEL_NUMA, i, phy_index); + __kmp_init_task_deque(&task_team->tt.tt_task_queues[KMP_LEVEL_NUMA][phy_index], KMP_LEVEL_NUMA, phy_index, phy_index); + __kmp_init_task_deque(&task_team->tt.tt_task_private_queues[KMP_LEVEL_NUMA][phy_index], KMP_LEVEL_NUMA, phy_index, phy_index); KA_TRACE( 5, ( "__kmp_enable_tasking: phy index: %i, array index: %i\n", phy_index, i ) ); - printf( "[TASK_TEAM]: NUMA %i, array index: %i\n", phy_index, i ); + printf( "[TASK_TEAM]: NUMA %i/%i, array index: %i\n", phy_index, setsize, i ); i++; } }