Mentions légales du service

Skip to content
Snippets Groups Projects
Commit dfab090a authored by Thierry's avatar Thierry
Browse files

[fix] initialisation bug in hws queue

parent 2e887f79
Branches
No related tags found
No related merge requests found
......@@ -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++;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment