GNU Make offers parallel builds through the
which specifies the maximum number of concurrent jobs.
This is supported by both
tamed starts by spawning a single runner,
which is marked as available.
When a command is issued to
it will reserve the first available runner it finds by marking it as
Once the runner is finished,
it will be marked as available once again.
If all available runners are busy,
tame issues a signal to
tamed to spawn another
tame then reserves and marks as busy.
No runners are ever freed (terminated) until
For example, to build with up to four concurrent runners, use ‘-j4’:
Compiling and linking large packages can be memory intensive. While runner memory consumption may vary, it’s wise to profile the memory usage of a single runner and use that to estimate how many concurrent runners your system can support.
Saxon is also multi-threaded under certain circumstances,
so you should allocate fewer jobs than you have available CPU
GNU Make also offers a
-l flag that tells it not to spawn
more jobs if the system is above the indicated load.
But note that,
even if a runner is idle,
it is still using up memory.