banyan-julia
banyan-julia copied to clipboard
Accurately estimate the memory available on the executor
Right now we have a fixed maximum memory usage per worker based on the instance type - and because this isn't accurate we end up assuming that only 30% of it is available which leads to worse performance than needed. Instead, we should have each job that is created, compute the minimum free_memory = begin GC.gc(true); Sys.free_memory end
across all workers using min_free_memory = MPI.Reduce(min, free_memory, 0, MPI.COMM_WORLD)
and on the head node (where the MPI.Comm_rank(MPI.COMM_WORLD) == 0
) we should send this to the client and then send this max_worker_memory
to each call to evaluate
which stores it in JobInfo
.