Re: [PATCH] parallelize g++ testing a bit more

2011-06-20 Thread Rainer Orth
Mike Stump mikest...@comcast.net writes:

 On Jun 17, 2011, at 10:47 AM, Nathan Froyd wrote:
 I've done a lot of g++-only testsuite runs lately

 I think it is reasonable to have even more of them, say, if you have
 16 cores and just test c++...  I wonder what the scaling is like as we
 approach larger N.  :-)

I've got a patch to do this, prompted by the use of UltraSPARC-T2
machines with 8 cores/8 strands which are quite slow on their own:

[build, testsuite, v3] Increase gcc, g++, gfortran and libstdc++-v3 
testsuite parallelism
http://gcc.gnu.org/ml/gcc-patches/2010-07/msg01633.html

but haven't yet incorporated Jakub's comments.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: [PATCH] parallelize g++ testing a bit more

2011-06-20 Thread Jason Merrill

On 06/17/2011 08:20 PM, Mike Stump wrote:

On Jun 17, 2011, at 10:47 AM, Nathan Froyd wrote:

I've done a lot of g++-only testsuite runs lately


I think it is reasonable to have even more of them, say, if you have 16 cores 
and just test c++...  I wonder what the scaling is like as we approach larger 
N.  :-)


In my test runs, one of the libstdc++ batches (normal3) takes longer 
than any of the g++ batches, so breaking that up would be more effective 
for me.  :)


Jason



Re: [PATCH] parallelize g++ testing a bit more

2011-06-20 Thread Mike Stump
On Jun 20, 2011, at 4:06 AM, Rainer Orth wrote:
 I've got a patch to do this, prompted by the use of UltraSPARC-T2
 machines with 8 cores/8 strands which are quite slow on their own:
 
   [build, testsuite, v3] Increase gcc, g++, gfortran and libstdc++-v3 
 testsuite parallelism
http://gcc.gnu.org/ml/gcc-patches/2010-07/msg01633.html
 
 but haven't yet incorporated Jakub's comments.

Yeah, I would not even consider a patch that was count based.  :-)  Ideally, 
what you want to do is to bin pack the completed in N seconds in B bins, where 
B is related to the physical number of cores.  The, there is _no_ extra 
overhead for subdivision on 1 core, and on 10,000 core, it still works, though, 
one is going to need slightly better 1 to B code.  Anyone know of a bin packer 
command line argument?  We don't care if it is slow, because we can bin pack 
every 10th run, and start with idealized times.  I would have contributed that 
sort of change a while ago, but didn't spot a bin packer.  I also did up code 
to pull from a single work list, but, dejagnu isn't structured to do that.  :-( 
 That would be the best solution, but is much more work.


Re: [PATCH] parallelize g++ testing a bit more

2011-06-20 Thread Jakub Jelinek
On Mon, Jun 20, 2011 at 09:28:56AM -0400, Jason Merrill wrote:
 On 06/17/2011 08:20 PM, Mike Stump wrote:
 On Jun 17, 2011, at 10:47 AM, Nathan Froyd wrote:
 I've done a lot of g++-only testsuite runs lately
 
 I think it is reasonable to have even more of them, say, if you have 16 
 cores and just test c++...  I wonder what the scaling is like as we approach 
 larger N.  :-)
 
 In my test runs, one of the libstdc++ batches (normal3) takes longer
 than any of the g++ batches, so breaking that up would be more
 effective for me.  :)

Yeah, certainly, libstdc++ needs more parallelization most.
But, as I wrote already to Rainer in Autumn, the methodology
for splitting things up should be on a fast box look at
the time spent in each of the parts as reported by dejagnu
in the log files, and split it to make the jobs roughly even
sized with not overcomplicated patterns.

Here are some numbers from my last x86_64-linux regtest.

From these numbers, I'd say the first parallelization changes
should be split gcc/execute.exp testing from 2 to 4 parallel jobs,
gcc/compile.exp from one to 2, gfortran/dg.exp from 3 to 6 and
libstdc++-v3/conformance.exp from 4 to 8 or 10.
Everything else is much less important.

gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/bprob/bprob.exp completed in 23 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/charset/charset.exp completed in 9 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/compat/compat.exp completed in 49 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/compat/struct-layout-1.exp completed in 271 
seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/debug/debug.exp completed in 156 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp completed in 7 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/dfp/dfp.exp completed in 25 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/gcov/gcov.exp completed in 3 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/gomp/gomp.exp completed in 16 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/graphite/graphite.exp completed in 0 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/guality/guality.exp completed in 11 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/lto/lto.exp completed in 176 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/pch/pch.exp completed in 18 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/plugin/plugin.exp completed in 5 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/special/ecos.exp completed in 2 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/tls/tls.exp completed in 1 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/torture/dg-torture.exp completed in 469 
seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp completed 
in 52 seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp completed in 22 
seconds
gcc/testsuite/g++/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/vect/vect.exp completed in 1 seconds
gcc/testsuite/g++1/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.old-deja/old-deja.exp completed in 662 seconds
gcc/testsuite/g++2/g++.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/g++.dg/dg.exp completed in 704 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp completed in 227 
seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/autopar/autopar.exp completed in 9 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/charset/charset.exp completed in 4 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/compat/compat.exp completed in 87 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/cpp/cpp.exp completed in 31 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/cpp/trad/trad.exp completed in 5 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/debug/debug.exp completed in 201 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp completed in 6 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/dfp/dfp.exp completed in 28 seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 
/usr/src/gcc/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp completed in 0 
seconds
gcc/testsuite/gcc/gcc.log.sep:testcase 

[PATCH] parallelize g++ testing a bit more

2011-06-17 Thread Nathan Froyd
I've done a lot of g++-only testsuite runs lately and I noticed that it
didn't parallelize all that well.  The patch below adds a couple more
.exp files to the parallel infrastructure.  dg-torture.exp is the big
one; it takes about as much time as old-deja.exp.

Other valid candidates are lto.exp and debug.exp, but the patch cuts g++
testing time in half as-is, so I felt it was a sufficient stopping
point.

OK to commit?

-Nathan

gcc/cp/
* Make-lang.in (check_g++_parallelize): Add more .exp files.

diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 45efd67..95bae37 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -154,7 +154,7 @@ check-c++-subtargets : check-g++-subtargets
 lang_checks += check-g++
 lang_checks_parallelized += check-g++
 # For description see comment above check_gcc_parallelize in gcc/Makefile.in.
-check_g++_parallelize = old-deja.exp dg.exp
+check_g++_parallelize = old-deja.exp dg.exp dg-torture.exp struct-layout-1.exp
 
 #
 # Install hooks:


Re: [PATCH] parallelize g++ testing a bit more

2011-06-17 Thread Jason Merrill

OK.

Jason