Hi,
On Thu, May 28, 2015 at 06:01:33PM +0000, Noel Grandin wrote:
Wasn't someone going to look at speeding that up? Make check is not
currently making very good use of multiple cores and it has a long tail
where only one or two cores are busy.
I cant fully confirm that -- at least not combined with Michaels 15 minutes
number. Good ol' big Bertha with two Opteron 6272s has 32 cores, but mediocre
single-threaded performance compared with some of todays offerings. Still[1]:
-j
real 5m 9.091s
user 25m12.250s
sys 2m53.420s
-j32
real 5m30.133s
user 29m46.310s
sys 3m10.660s
-j8
real 6m35.434s
user 19m36.700s
sys 2m 6.390s
-j1
real 34m11.814s
user 17m51.990s
sys 1m52.470s
(all above along with moderate desktop use alongside: Firefox, mplayer audio
streaming etc. -- so not too scientific.)
And with this I see a lot of processes running parallel till the end. This
suggests to me that the stuff is quite parallelized -- however none of the
testing threads seem to be CPU-bound rather the Java-stuff seems to be IO bound
(for IPC?) with the slowest test unit taking ~5 minutes. Thus even 32 jobs or
more dont seem to keep more than one core busy.
At least for people with a meager duo-core laptop or somesuch, this suggests
you should try:
time make check PARALLELISM=9999 # aka forkbomb me please
And if that doesnt explode your RAM, it should help you quite a bit and you
should end up with 5 minutes for 'make check' -- quite independant of your
hardware, as much of that seems IO-bound idling. If we want to cut down on that
5 minutes, we would need to touch the JunitTest internals.
Best,
Bjoern
[1] As a sidenote: I noted that linking with debug symbols takes at least 4
times as long as without debug symbols. Given that linking happens at the end
of the build with a narrow dependency tree left (as libraries are daisy-chained
dependency-wise for linking), you are really penalized for building with
symbols when you dont need those, as it can easily dry out paralellism. So dont
do that: Rather than building with symbols everywhere and then skipping on
tests, better build without symbols unless you are debugging, but _run the
tests_.
[2] On my ancient notebook with a i7-2720QM (a modern 4th gen i7-4770HQ is at
least 50% faster at the same speed) I find the following with disabling
Junittest_toolkit_unoapi as it was failing on that checkout.
time make check PARALLELISM=9999:
reall 5m15.351s
user 15m52.808s
sys 1m10.073s
time make check (thus -j8):
real 6m2.806s
user 14m32.157s
sys 1m1.861s
time make check PARALLELISM=1:
real 41m 7.984s
user 27m33.174s
sys 1m13.949s
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.