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
The problem with the current ALLOW_MAKE_JOBS=yes is that it can kill the system when too many jobs are run by poudriere (each task is run on many CPUs). The problem with ALLOW_MAKE_JOBS=nois that it is (obviously) slow when the number of tasks gets low.
I suggest to add the variable ALLOW_MAKE_JOBS_{NTASKS}=yes. For example, ALLOW_MAKE_JOBS_1=yes would run the task on multiple CPUs when it starts as a single task. This should always be safe, and can improve the overall performance.
ALLOW_MAKE_JOBS_2=yes will run on multiple CPUs when the task starts among only 1 or 2 simultaneous tasks, etc. Since a task can finish and lead to multiple other tasks, this can lead to number of jobs >NCPU. This makes such option controversial for NTASKS>=2. But IMO this option can still be useful for NTASKS>=2 as long as its effects are documented.
This option, if implemented, would make poudriere job control more flexible.
The text was updated successfully, but these errors were encountered:
I coded this up a while ago to allow using MAKE_JOBS when only 1 job is running, or to split it for 2 jobs. It was pretty invasive for what seemed like little benefit. https://github.com/freebsd/poudriere/compare/master...bdrewery:master-make-jobs-bottlenecked?expand=1 was the implementation. By invasive I just mean it added more complexity in the queue handling which is critical code to keep simple (it's already too complex).
The problem with the current
ALLOW_MAKE_JOBS=yes
is that it can kill the system when too many jobs are run by poudriere (each task is run on many CPUs). The problem withALLOW_MAKE_JOBS=no
is that it is (obviously) slow when the number of tasks gets low.I suggest to add the variable
ALLOW_MAKE_JOBS_{NTASKS}=yes
. For example,ALLOW_MAKE_JOBS_1=yes
would run the task on multiple CPUs when it starts as a single task. This should always be safe, and can improve the overall performance.ALLOW_MAKE_JOBS_2=yes
will run on multiple CPUs when the task starts among only 1 or 2 simultaneous tasks, etc. Since a task can finish and lead to multiple other tasks, this can lead to number of jobs>NCPU
. This makes such option controversial forNTASKS>=2
. But IMO this option can still be useful forNTASKS>=2
as long as its effects are documented.This option, if implemented, would make poudriere job control more flexible.
The text was updated successfully, but these errors were encountered: