Hi Bob, sorry for the delay. On 08/31/2012 09:21 PM, Bob Friesenhahn wrote: > Given the mention of 'sort' in another thread, I would like to mention > something that I have thought about for some time. When one does > parallel builds on systems with many cores (particularly slow cores), > the time to complete a build is improved if build products which take > a long time are done first and ones which complete quickly are done > last. Most importantly, a really slow compilation/link should not > be scheduled last if at all possible. The reason for this is that > all other objects may have already been compiled while one or two > last objects which are slow to compile or link are still completing. > Linking may be I/O bound and take a long time while leaving plenty > of CPU for other compilations. > > The thought is that if the time to build each component is captured > and saved, then subsequent builds can be done in inverse order of > build times (by listing them in that order), subject to build > dependencies. This could even be codified in the makefiles in the > distribution tarball. > > The benefits would be greatest for non-recursive builds where all > of the targets may be scheduled at once (modified by explicit > dependencies) by one make process. > > The maximum possible benefit would be determined by the slowest > build product (if it had been scheduled to start last). > > Thoughts? > I think that such a feature would be better implemented in GNU make rather than in Automake-NG (or any other kind of make pre-processor). Have you tried to write to the GNU make list to see their reaction and feedback?
Regards, Stefano
