Re: [PATCH 6/13] Coarray shared memory library
Tobias Burnus <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
Jerry D wrote:
> Fortran: Enable coarray tests for multi image use [PR88076]
>
> Change some of regression tests to run on single and multiple images.
> Add some new tests.
>
> PR fortran/88076
>
> gcc/testsuite/ChangeLog:
>
> * gfortran.dg/coarray/alloc_comp_4.f90: Make multi image
> compatible.
> * gfortran.dg/coarray/atomic_2.f90: Same.
> * gfortran.dg/coarray/caf.exp: Also test caf_shmem and choose
I think this should be split into two parts – one part will be changing
the testcases to handle more than 1 image – and the second part that needs
to land with or after 13/13 is to actually enable it.
Regarding the first part: I or someone else still has to review those
changes.
Regarding the second part:
> --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp
> +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp
> @@ -70,6 +70,12 @@ proc dg-compile-aux-modules { args } {
> }
> }
>
> +if { [getenv GFORTRAN_NUM_IMAGES] == "" } {
> + # Some caf_shmem tests need at least 8 images. This is also to limit the
> + # number of images on big machines preventing overload w/o any benefit.
> + setenv GFORTRAN_NUM_IMAGES 8
> +}
> +
FYI only: When doing remote testing, DejaGNU does not properly forward
environment variables. I assume it also works somewhat gracefully when
it is unset.
> + foreach flags $option_list {
> + verbose "Testing $nshort (libcaf_shmem), $flags" 1
> + set gfortran_aux_module_flags "-fcoarray=lib $flags -lcaf_shmem"
> + dg-test $test "-fcoarray=lib $flags -lcaf_shmem" {}
> + cleanup-modules ""
> + }
As mentioned in 13/13, the current implementation seems to assume that
POSIX threads are available; additionally, -lpthread or -pthread might
be needed for linking. In any case, it seems as if some check is
required whether caf_shmem is actually available; otherwise, the shmem
tests have to be skipped.
Tobias