Support parallel testing in libgomp, part I [PR66005]
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Mon May 8 17:52:17 GMT 2023
On Mon, 8 May 2023 12:42:33 +0200
Thomas Schwinge <thomas@codesourcery.com> wrote:
> >> +if [info exists ::env(GCC_RUNTEST_PARALLELIZE_DIR)] {
> >> + load_file ../libgomp-test-support.exp
> >> +} else {
> >> + load_file libgomp-test-support.exp
> >> +}
> >
> > Do we have to re-read those? Otherwise this would be load_lib:
>
> Indeed there is some confusion there; conceptually the content of that
> file has to be expected to vary per libgomp (multilib) build variant.
> On the other hand, given the GCC target libraries testing setup, we're
> running testing always via the default variant's build, so always read
> the default variant's file. I agree that should get un-confused, however
> it's a pre-existing issue that I suggest we tackle independently of this
> mechanical change.
Sure. One thing at a time.
> > Some cosmetic nits.
> > See Jakubs one_to_9999.
>
> Thanks. That got installed while I'd already finished my patch. ;-)
> Note that the new 'one_to_9999' etc. is just the existing
> 'check_p_numbers' etc. renamed and moved, as it now has a second use.
> I'm happy to incorporate that into my changes -- if we agree that it
> should also go into other GCC target libraries' parallel testing code:
> libphobos, libstdc++-v3.
Yes. Streamlining these can be done in follow-ups if the respective
maintainers agree.
> >> >> It is far from trivial though.
> >> >> The point is that most of the OpenMP tests are parallelized with the
> >> >> default OMP_NUM_THREADS, so running the tests in parallel oversubscribes the
> >> >> machine a lot, the higher number of hw threads the more.
[]
> >> > the same time? For example, a new dg-* directive to run them wrapped
> >> > through »flock [libgomp/testsuite/serial.lock] [a.out]« or some such?
> >
> > I think we all agree one that, yes.
>
> Conceptually, yes. However, given that my
> "Support parallel testing in libgomp, part II [PR66005]" changes already
> seem to enable a great amount of parallelism, occupying CPUs almost
> fully, I'm not actually sure now if adding more parallelism via
> tedious-to-maintain new dg-* directives is actually necessary/useful. As
> long as libgomp testing now no longer is at the long tail end of overall
> testing time, I'd rather keep it simple?
If the testsuite runtime is fine with your part II as is then we
should keep it as simple as possible.
> >> > (Will again have the problem that DejaGnu doesn't provide infrastructure
> >> > to communicate environment variables to boards in remote testing.)
> >
> > Are you sure? I'm pretty confident that this worked fine at least at
> > one point in the past for certain targets.
>
> For example, see the comments/references in recent
> <https://inbox.sourceware.org/018bcdeb-b3bb-1859-cd0b-a8a92e26d3a0@codesourcery.com>.
oh, i think i had an rsh2 remote that uploaded $program.env and the rsh
itself was something like
$RSH $rsh_useropts $hostname sh -c 'test -r $program.env && .
$program.env \\; $program $pargs \\; echo ...
but that was ages ago and was properly implemented in the meantime, one
would hope? Well, apparently not.
PS: Back then I usually needed very different per-program env and not a
single, static env. So for me it made no sense to have a set of default
env and have tests add their own variables on-demand on top of the
default. The situation in gcc might be the exact opposite?
thanks,
More information about the Gcc-patches
mailing list