On Thu, 25 Jul 2019 at 16:39:38 +0300, Adrian Bunk wrote:
> On Thu, Jul 25, 2019 at 01:22:42PM +0200, Santiago Vila wrote:
> > The only thing it did not have was more than one CPU, but AFAIK that's
> > not something that may be considered as a misconfiguration.
> 
> For CPU-bound tasks like package building I would consider this build 
> environment a misconfiguration.

I can see your point, but some cloud-based automated build environments
that I've used at work only provide one vCPU per build. I believe this
is done because builds typically don't parallelize perfectly (a build
that takes 10 minutes on one core will usually take more than 5 minutes
on two cores, because there are single-threaded bottlenecks like the
linker or documentation toolchains), so if you have a lot of packages
to build, it's a more efficient use of limited resources to build two
packages with parallel=1 on one core each than to build a single package
with parallel=2 on two cores. This seems like it would apply equally well
whether your limited resource is the money you pay for cloud VM instances,
or the number of physical CPUs available in your own non-cloudy VM host.

(Of course, if you're optimizing for latency rather than throughput, to
get each new version deployed and tested as quickly as possible, then the
opposite is true and it's better to sprint through each package as fast as
possible on as many cores as you can get - it's a question of priorities.)

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924325 does look like
something I've encountered in my day job, although we worked around it
by disabling Ada to bypass the problematic part of the build (we don't
actually have any need for Ada in that environment, so speeding up the
build was welcome) rather than by adding more cores.

    smcv

Reply via email to