Skip to content

Commit

Permalink
Backport #45727 and a patch to make it work (#45938)
Browse files Browse the repository at this point in the history
* Bug fix for `max_collect_interval` computation (#45727)

Currently constrained to `totalmem / ncores / 2` for `_P64` which
results in a very short collect interval when you're running with
a smaller number of threads on a machine with many cores.

Changes this to `totalmem / nthreads / 2` which, for two of our
tests, resulted in 40% and 60% runtime reduction (!!) as well as
GC time reduction from 46% to 10% and 64% to 11%.

* Move GC init after threading init

To allow use of `jl_n_threads` in GC initialization.
  • Loading branch information
kpamnany authored Jul 5, 2022
1 parent 2b6c746 commit 7a23871
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3410,12 +3410,12 @@ void jl_gc_init(void)
gc_num.allocd = 0;

#ifdef _P64
// on a big memory machine, set max_collect_interval to totalmem / ncores / 2
// on a big memory machine, set max_collect_interval to totalmem / nthreads / 2
uint64_t total_mem = uv_get_total_memory();
uint64_t constrained_mem = uv_get_constrained_memory();
if (constrained_mem > 0 && constrained_mem < total_mem)
total_mem = constrained_mem;
size_t maxmem = total_mem / jl_cpu_threads() / 2;
size_t maxmem = total_mem / jl_n_threads / 2;
if (maxmem > max_collect_interval)
max_collect_interval = maxmem;
#endif
Expand Down
2 changes: 1 addition & 1 deletion src/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -686,10 +686,10 @@ JL_DLLEXPORT void julia_init(JL_IMAGE_SEARCH rel)
}

jl_init_runtime_ccall();
jl_gc_init();
jl_init_tasks();
jl_init_threading();

jl_gc_init();
jl_ptls_t ptls = jl_init_threadtls(0);
// warning: this changes `jl_current_task`, so be careful not to call that from this function
jl_task_t *ct = jl_init_root_task(ptls, stack_lo, stack_hi);
Expand Down

0 comments on commit 7a23871

Please sign in to comment.