This is the mail archive of the
mailing list for the GCC project.
Re: gcc parallel make check
- From: Jakub Jelinek <jakub at redhat dot com>
- To: VandeVondele Joost <joost dot vandevondele at mat dot ethz dot ch>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Wed, 3 Sep 2014 11:30:01 +0200
- Subject: Re: gcc parallel make check
- Authentication-results: sourceware.org; auth=none
- References: <908103EDB4893A42920B21D3568BFD93150E8FDF at MBX13 dot d dot ethz dot ch> <908103EDB4893A42920B21D3568BFD93150E8FFF at MBX13 dot d dot ethz dot ch>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Sep 03, 2014 at 09:15:51AM +0000, VandeVondele Joost wrote:
> I've noticed that
> make -j -k check-fortran
> results in a serialized checking, while
> make -j32 -k check-fortran
> goes parallel. Somehow the explicit 'N' in -jN seems to be needed for the
> check target, while the other targets seem to do just fine. Is that a
> feature, or should I file a PR for that... ?
It is intentional. With -j it is essentially a fork bomb, just don't use
> Somewhat related.... is there a rule of thumb on how is the granularity of
> parallel check decided ? E.g. check-fortran seems to be limited to about
> ~5 parallel targets, which is few for a typical server (but of course a
> welcome speedup already).
The splitting has some cost (e.g. lots of various checks are cached, with
split jobs they need to be done in each separate goal), and the goal of the
split is toplevel make check parallelization, not individual directory or
language testing. For the latter perhaps more fine grained split could be
useful, but how would one find out if it is a toplevel make check, or say
make -C gcc check where you test many languages, or check-gfortran?