Skip to content
Snippets Groups Projects
Commit 51be5fa8 authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

No unwanted post-merge changes.

parent 31730730
No related branches found
No related tags found
1 merge request!266Cube root
...@@ -6,11 +6,6 @@ InternalUnitSystem: ...@@ -6,11 +6,6 @@ InternalUnitSystem:
UnitCurrent_in_cgs: 1 # Amperes UnitCurrent_in_cgs: 1 # Amperes
UnitTemp_in_cgs: 1 # Kelvin UnitTemp_in_cgs: 1 # Kelvin
# Parameters for the task scheduling
Scheduler:
cell_sub_size: 6000 # Value used for the original scaling tests
cell_split_size: 300 # Value used for the original scaling tests
# Parameters governing the time integration # Parameters governing the time integration
TimeIntegration: TimeIntegration:
time_begin: 0. # The starting time of the simulation (in internal units). time_begin: 0. # The starting time of the simulation (in internal units).
......
This diff is collapsed.
...@@ -59,14 +59,22 @@ void *threadpool_runner(void *data) { ...@@ -59,14 +59,22 @@ void *threadpool_runner(void *data) {
pthread_mutex_unlock(&tp->thread_mutex); pthread_mutex_unlock(&tp->thread_mutex);
/* The index of the mapping task we will work on next. */ /* The index of the mapping task we will work on next. */
size_t task_ind; while (1) {
while ((task_ind = atomic_add(&tp->map_data_count, tp->map_data_chunk)) < /* Desired chunk size. */
tp->map_data_size) { size_t chunk_size =
const int num_elements = task_ind + tp->map_data_chunk > tp->map_data_size (tp->map_data_size - tp->map_data_count) / (2 * tp->num_threads);
? tp->map_data_size - task_ind if (chunk_size > tp->map_data_chunk) chunk_size = tp->map_data_chunk;
: tp->map_data_chunk; if (chunk_size < 1) chunk_size = 1;
/* Get a chunk and check its size. */
size_t task_ind = atomic_add(&tp->map_data_count, chunk_size);
if (task_ind >= tp->map_data_size) break;
if (task_ind + chunk_size > tp->map_data_size)
chunk_size = tp->map_data_size - task_ind;
/* Call the mapper function. */
tp->map_function((char *)tp->map_data + (tp->map_data_stride * task_ind), tp->map_function((char *)tp->map_data + (tp->map_data_stride * task_ind),
num_elements, tp->map_extra_data); chunk_size, tp->map_extra_data);
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment