[PATCH] RE: gcc parallel make check

VandeVondele Joost joost.vandevondele@mat.ethz.ch
Tue Sep 9 06:51:00 GMT 2014


Attached is an extended version of the patch, it brings a 100% improvement in make -j32 -k check-gcc (down from 20min to <10min) by modification of check_gcc_parallelize.

It includes one non-trivial part, namely a split of the target exps. They are now all split using a common choice (based on i386), which I believe is reasonable as it is the target with most tests, and the patterns will be somewhat similar for other targets (e.g. split of p(rxxx)). The implementation of this in the makefile uses an odd looking technique to substitute spaces with commas in a variable, if this can be done more elegantly, I'm happy to make the change.

Bootstrap and testing revealed one issue, i386.exp hard-codes a loop for the testcase 'vect-args.c' in order to test 10 different combinations of options. With the current split (i.e. target x4) this test will thus be executed 4 times. There are two easy options

1) keep the current setup, overhead is small
2) keep the .exp file simple and just replicate this test 10x 

I've selected 1), but I can update a patch with 2). Ideally dg-options in the testcase file itself could be repeated, but I haven't found an example of this. 

The script now includes sorting and compression of the ranges, and an additional sanity check on the input, i.e. that file names start with [0-9A-Za-z]. Some (few) files seem to start with _ or # (in ./gcc.dg/cpp/).

I'll follow up with a separate patch to improve check_g++_parallelize.

Full 'make -j k32 check' is now dominated by libstdc++ testing, which contains single goals that run ~1100s (e.g. regex related tests). These uses a slightly different syntax (see gcc/libstdc++-v3/testsuite/Makefile.am) and I'm not yet sure how to deal with the .am files.

current patch OK for trunk ?

Joost

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-speedup-checkfortran-v05.CL
Type: application/octet-stream
Size: 606 bytes
Desc: patch-speedup-checkfortran-v05.CL
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140909/bf308cc7/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-speedup-checkfortran-v05.diff
Type: text/x-patch
Size: 9479 bytes
Desc: patch-speedup-checkfortran-v05.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140909/bf308cc7/attachment.bin>


More information about the Gcc-patches mailing list