On Mon, Dec 11, 2023 at 4:57 PM William Bader <[email protected]> wrote: > > Some Linux systems have ionice for I/O. At least for a reasonable number of > processes, nice and ionice allow jobs to get the full resources of the server > when it is otherwise idle without impacting interactive response for users. > If the builds use make -j or ninja or something similar that parallelizes the > steps of the build, is there much advantage to running several builds at > once, considering that it would need multiple copies of the git repositories > and that include files and object files might get pushed out of disk cache or > ccache by the competing builds?
Yes if make -j then using GNU parallel may not be an advantage, but it's still pretty common to have setups where .NOTPARALLEL is used or where it's not obvious that parallel builds are safe, and ./configure isn't parallel at all as far as I know and can be an annoying chunk, and very IO-bound. I guess there might be cases where GNU parallel ends up worse but it's a pretty safe bet compared to parallel build. It also seems possible that with a really good and trusted build system (100% solid dependency graph, incremental linker etc.) it might be possible to cp -a one commit to the next, check out the changes, and rebuild incrementally, so that across most changes it would be faster to not parallel. But I've never had a build system I trust quite enough to want to try that. Britton
