You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to use the future.lapply function to run many jobs (e.g. 1000) and I know that these jobs vary in complexity and time-consumed. I sorted them in an estimated descending order and need to force future.lapply to distribute the most complex jobs to cores, then the next complex jobs, etc. This will balance the processing time. I need to implement something like:
I expect Process ID 26080 to process jobs 16 and 9, not 16 and 1. How can I ensure that the jobs are distributed in the order they are processed? Using future.scheduling = Inf instead of future.chunk.size = 1 leads to the same results.
A related question is that I need to allow jobs to start in the desired order (i.e. most complex jobs first) but distribute jobs to cores as soon as they are finished with previous job. When I monitor the current implementation, I find that some cores may become idle by the end of the processing, while many left jobs are waiting to be done on only a couple of cores, which influence the total time consumed by the job. Is this achievable without affecting the overall performance of the task?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello,
I want to use the
future.lapply
function to run many jobs (e.g. 1000) and I know that these jobs vary in complexity and time-consumed. I sorted them in an estimated descending order and need to forcefuture.lapply
to distribute the most complex jobs to cores, then the next complex jobs, etc. This will balance the processing time. I need to implement something like:I use something similar to this
This forces the most complex 8 jobs to be executed first, then the next 8, etc.
I expect Process ID 26080 to process jobs 16 and 9, not 16 and 1. How can I ensure that the jobs are distributed in the order they are processed? Using
future.scheduling = Inf
instead offuture.chunk.size = 1
leads to the same results.A related question is that I need to allow jobs to start in the desired order (i.e. most complex jobs first) but distribute jobs to cores as soon as they are finished with previous job. When I monitor the current implementation, I find that some cores may become idle by the end of the processing, while many left jobs are waiting to be done on only a couple of cores, which influence the total time consumed by the job. Is this achievable without affecting the overall performance of the task?
Thanks
Beta Was this translation helpful? Give feedback.
All reactions