Serializing possibly resource-intensive tasks such as meinproc
Thiago Macieira
thiago at kde.org
Tue Jan 12 01:28:43 CET 2010
Em Segunda-feira 11. Janeiro 2010, às 22.03.44, Alexander Neundorf escreveu:
> On Monday 11 January 2010, Lubos Lunak wrote:
> > somebody has already reported them various cmake's shortcomings in
> > dealing with parallel make when compared to unsermake.
>
> Please do :-)
What is needed is for make (not cmake) to talk to the farm scheduler and know
when it can start a new job. This way, we don't pay the fork()+execve()+setup
penalty when the job is going to be sleeping for the next minute or two.
My LD_PRELOAD solution allows me to avoid running 60 moc or 60 meinproc4 when
I do make -j60, but I still run 60 tb that just sit there idling, waiting for
the scheduler to tell it to go. Even with distributed jobs, my computer cannot
preprocess fast enough, so from the 60 processes that start, only 10 or 12
actually happen in parallel. The rest are just eating RAM and costing on
startup.
I could enhance the LD_PRELOAD module to be this kind of local scheduler (or
talk to it), stopping the process just before execve(). However, the fork()
penalty is still there.
It also needs to split its jobs per category, since each category has a
different kind of scheduling.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Senior Product Manager - Nokia, Qt Development Frameworks
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20100112/06a2871f/attachment-0001.sig
More information about the Kde-buildsystem
mailing list