Re: visualize build parallelism, duration of build steps?

Brian Cody <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAGjv2k3_Fz_6GE0-YCGFExCkth_AYhQfF6o45gAt6c2XpV_RQw@mail.gmail.com>
I like this idea. I've previously worked on measuring parallelism at a more
macro level (compiling, linking, static analysis, unit testing, integration
testing, etc) with a floating bar graph visualization.generated in Python.
I am not sure how best to make it work with SCons and potentially tens of
thousands (or more) individual items, but I'm happy to be a part of that
conversation.

I've had a suspicion for a few years that there might be a task scheduling
bug where at certain points a super task seems to come along and stop any
other tasks from being scheduled until it is done. I have no
reproducibility instructions other than to stare at your build using
process explorer / htop / your tool of choice and to watch. It would be
great to have a database that could provide evidence.

-Brian



On Tue, Oct 19, 2021, 06:13 Stijn De Ruyck <[email protected]> wrote:

> FWIW, during my own testing, I noticed a performance benefit for GCC
> compilations up to the number of physical cores +2. So for a hyperthreaded
> 12 core system with enough memory available, I would see gains up to -j14.
> The other 10 virtual cores wouldn’t help much. Anything higher than -j14
> would not result in decreased compilation time, only increased memory
> consumption. You also need to take into account memory & disk bandwidth
> bottlenecks when using high parallelism on only a single system.
>
>
>
> I’m not aware of turn-keyish integration for distributed builds, but we
> have used DistCC with ease in the past, there’s not much setup involved,
> and now use Scons with LSF instead.
>
>
>
> Stijn
>
>
>
> *From:* Scons-users <[email protected]> * On Behalf Of *Gabe
> Black
> *Sent:* Tuesday, October 19, 2021 11:56
> *To:* SCons users mailing list <[email protected]>
> *Subject:* Re: [Scons-users] visualize build parallelism, duration of
> build steps?
>
>
>
> [External Email]: This email arrived from an external source - Please
> exercise caution when opening any attachments or clicking on links.
>
> To follow up with some measurements, I found that my build performance
> scales logarithmically with -j, up to the number of threads in my system. I
> have a 12 core CPU with 2 threads per core, so that is up to 24 threads.
> After that point, performance stops improving and actually degrades
> slightly. By logarithmically, I mean that the graph of the log of the -j
> value tracks the decrease in run time of a clean build reasonably well. Or
> in other words, I would expect going from -j4 to -j16 to improve build time
> by a factor of 2x, and not a factor of 4x.
>
>
>
> Is this expected? Is there a way to diagnose what keeping our build from
> scaling roughly linearly? We have many individual object files which should
> be buildable in parallel, so I'm not sure what the bottleneck is. There
> curve seems to be fairly smooth and not a hard drop off, so I don't think
> we're hitting a specific limit in memory bandwidth or capacity, overflowing
> the disk cache, etc.
>
>
>
> Gabe
>
>
>
> On Mon, Oct 18, 2021 at 3:45 PM Gabe Black <[email protected]> wrote:
>
> Hi folks, sorry if this is a really obvious question, but is there a
> command line flag or tool or something to visualize how parallel a SCons
> build is, if there are any bottlenecks, if there are abnormally long
> running build steps, etc?
>
>
>
> I don't have an immediate pressing need for a tool like that, but I think
> it might be helpful identifying places our build could be tightened up. It
> could and also help get a rough idea of how well the build would scale to a
> very parallel build machine, ie. what might build time be with 32 cores? 64
> cores? 128 cores? etc. How much memory would you need for 128 cores to
> avoid memory bottlenecks?
>
>
>
> Somewhat on that topic, are there any relatively easy to set up
> distributed build mechanisms for SCons? I'm sure you could plug distcc into
> it for instance, but is there anything which has some nice, turn key(ish?)
> integration?
>
>
>
> Thanks!
>
> Gabe
>
> _______________________________________________
> Scons-users mailing list
> [email protected]
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.