/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
Thomas Koenig schrieb am Sonntag, 12. Juni 2022 um 13:53:27 UTC+2:
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the
-fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \
/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
It is certainly an MPICH issue, but I am still using gfortran
version 9.2.1 just to avoid this -fallow-argument-mismatch flag
when compiling MPICH for use with gfortran and OpenCoarrays. To me,
it appears that this flag is somehow related to severe performance
issues with MPICH and coarray programming.
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the -fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \ 2>/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"
echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
I can assure you it is not - the change in question is purely something
that will downgrade a newly introduced error to a warning.
Any Performance issues you are seeing may be related to the
interplay of the OpenCoarrays library with MPICH. Since
I know neither well, I cannot really comment on that.
mies...@gmail.com <mies...@gmail.com> schrieb:
Thomas Koenig schrieb am Sonntag, 12. Juni 2022 um 13:53:27 UTC+2:
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the
-fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \
/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
It is certainly an MPICH issue, but I am still using gfortranI can assure you it is not - the change in question is purely something
version 9.2.1 just to avoid this -fallow-argument-mismatch flag
when compiling MPICH for use with gfortran and OpenCoarrays. To me,
it appears that this flag is somehow related to severe performance
issues with MPICH and coarray programming.
that will downgrade a newly introduced error to a warning.
Any Performance issues you are seeing may be related to the
interplay of the OpenCoarrays library with MPICH. Since
I know neither well, I cannot really comment on that.
Thomas Koenig schrieb am Freitag, 17. Juni 2022 um 17:01:36 UTC+2:And Intel MPI is MPICH. Earlier releases of ifort did perform as fast as my setup with gfortran 9.2 and OpenCoarrays.
mies...@gmail.com <mies...@gmail.com> schrieb:
Thomas Koenig schrieb am Sonntag, 12. Juni 2022 um 13:53:27 UTC+2:
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the
-fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \
/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
It is certainly an MPICH issue, but I am still using gfortranI can assure you it is not - the change in question is purely something that will downgrade a newly introduced error to a warning.
version 9.2.1 just to avoid this -fallow-argument-mismatch flag
when compiling MPICH for use with gfortran and OpenCoarrays. To me,
it appears that this flag is somehow related to severe performance issues with MPICH and coarray programming.
Any Performance issues you are seeing may be related to theMy personal guess is that this performance issue is not due to gfortran, not due to OpenCoarrays, and not due to ifort, but only due to MPICH. Recent releases of gfortran/OpenCoarrays and ifort show the exactly same (poor) run-time performance pattern.
interplay of the OpenCoarrays library with MPICH. Since
I know neither well, I cannot really comment on that.
And, for reasons that I can’t understand, the poor performance pattern with gfortran/OpenCoarrays occurs whenever the compilation of MPICH leads to:fallow-argument-mismatch
mpich 4.0.1 ./configure
checking whether gfortran allows mismatched arguments... yes, with -fallow-argument-mismatch
configure: error: The Fortran compiler gfortran does not accept programs that call the same routine with arguments of different types without the option -fallow-argument-mismatch. Rerun configure with FFLAGS=-fallow-argument-mismatch and FCFLAGS=-
schrieb am Samstag, 18. Juni 2022 um 16:14:29 UTC+2:pattern. And Intel MPI is MPICH. Earlier releases of ifort did perform as fast as my setup with gfortran 9.2 and OpenCoarrays.
Thomas Koenig schrieb am Freitag, 17. Juni 2022 um 17:01:36 UTC+2:
schrieb:
Thomas Koenig schrieb am Sonntag, 12. Juni 2022 um 13:53:27 UTC+2:
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the
-fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \
/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
It is certainly an MPICH issue, but I am still using gfortranI can assure you it is not - the change in question is purely something that will downgrade a newly introduced error to a warning.
version 9.2.1 just to avoid this -fallow-argument-mismatch flag
when compiling MPICH for use with gfortran and OpenCoarrays. To me,
it appears that this flag is somehow related to severe performance issues with MPICH and coarray programming.
Any Performance issues you are seeing may be related to theMy personal guess is that this performance issue is not due to gfortran, not due to OpenCoarrays, and not due to ifort, but only due to MPICH. Recent releases of gfortran/OpenCoarrays and ifort show the exactly same (poor) run-time performance
interplay of the OpenCoarrays library with MPICH. Since
I know neither well, I cannot really comment on that.
fallow-argument-mismatchAnd, for reasons that I can’t understand, the poor performance pattern with gfortran/OpenCoarrays occurs whenever the compilation of MPICH leads to:
mpich 4.0.1 ./configure
checking whether gfortran allows mismatched arguments... yes, with -fallow-argument-mismatch
configure: error: The Fortran compiler gfortran does not accept programs that call the same routine with arguments of different types without the option -fallow-argument-mismatch. Rerun configure with FFLAGS=-fallow-argument-mismatch and FCFLAGS=-
Just to make this more complete:with oversubscribing cores, i.e. using more coarray images than hardware cores are available).
From what I did see, the poor performance pattern is not necessarily a poor performance of the image-to-image data transfers with synchronization (through MPICH), but may rather be a poor performance of executing the purely local codes (and in my case
I was examining the docs
(https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html)
and it turns out that -fallow-argument-mismatch is implied by
-std=legacy.
-std=legacy is allowed by at least some versions that
will reject -fallow-argument-mismatch.
Switching to -std=legacy
worked for my use case, removing the need for a compatibility
test.
Just be careful in case -std=legacy has other, less desirable,
effects.
mies...@gmail.com schrieb am Samstag, 18. Juni 2022 um 16:14:29 UTC+2:pattern. And Intel MPI is MPICH. Earlier releases of ifort did perform as fast as my setup with gfortran 9.2 and OpenCoarrays.
Thomas Koenig schrieb am Freitag, 17. Juni 2022 um 17:01:36 UTC+2:
mies...@gmail.com <mies...@gmail.com> schrieb:
Thomas Koenig schrieb am Sonntag, 12. Juni 2022 um 13:53:27 UTC+2:
I recently had an e-mail from somebody who ran into trouble
with old code on gfortran - gfortran 9 did not have the
-fallow-argument-mismatch flag, but gfortran 11 required it due
to issues in the code.
The solution I proposed was to add something like
FC_OPTIONS="-O2"
cat > optiontest.f90 <<EOF
end
EOF
gfortran -fallow-argument-mismatch -fsyntax-only optiontest.f90 \
/dev/null && FC_OPTIONS="$FC_OPTIONS -fallow-argument-mismatch"echo $FC_OPTIONS
rm optiontest.f90
to his build scripts, which will add the flag to the FC_OPTIONS
variable if it is supported, and I thought I'd share it.
It is certainly an MPICH issue, but I am still using gfortranI can assure you it is not - the change in question is purely something that will downgrade a newly introduced error to a warning.
version 9.2.1 just to avoid this -fallow-argument-mismatch flag
when compiling MPICH for use with gfortran and OpenCoarrays. To me,
it appears that this flag is somehow related to severe performance issues with MPICH and coarray programming.
Any Performance issues you are seeing may be related to theMy personal guess is that this performance issue is not due to gfortran, not due to OpenCoarrays, and not due to ifort, but only due to MPICH. Recent releases of gfortran/OpenCoarrays and ifort show the exactly same (poor) run-time performance
interplay of the OpenCoarrays library with MPICH. Since
I know neither well, I cannot really comment on that.
fallow-argument-mismatchAnd, for reasons that I can’t understand, the poor performance pattern with gfortran/OpenCoarrays occurs whenever the compilation of MPICH leads to:
mpich 4.0.1 ./configure
checking whether gfortran allows mismatched arguments... yes, with -fallow-argument-mismatch
configure: error: The Fortran compiler gfortran does not accept programs that call the same routine with arguments of different types without the option -fallow-argument-mismatch. Rerun configure with FFLAGS=-fallow-argument-mismatch and FCFLAGS=-
Just to make this more complete:with oversubscribing cores, i.e. using more coarray images than hardware cores are available).
From what I did see, the poor performance pattern is not necessarily a poor performance of the image-to-image data transfers with synchronization (through MPICH), but may rather be a poor performance of executing the purely local codes (and in my case
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 159 |
Nodes: | 16 (0 / 16) |
Uptime: | 98:29:56 |
Calls: | 3,209 |
Files: | 10,563 |
Messages: | 3,009,579 |