Open gutmann opened 6 years ago
Unfortunately, a developer committed a patch to the GCC trunk just before the 8.1.0 release that broke lots of coarray features. Fortunately, the developer also posted a patch that solves the problem, but the patch didn't hit the GCC trunk until after the release. I recommend Soren start with the 6.4.0, which I've already verified is working and which will give him some confidence in the code and knowledge of how to run it. Then I recommend jumping to the current GCC trunk (9.0.0), which has the aforementioned patch.
Just FYI, if anyone wants to use GCC 8.1.0, I recommend building it with the OpenCoarrays installer using something like
./install.sh --package gcc --install-version 8.1.0 --disable-bootstrap --num-threads 4 --yes-to-all
The installer will patch 8.1.0 before building it. Also, for anyone who uses the homebrew
package manager, we're working on getting it to apply the patch automatically too.
Does the current master branch of opencoarrays ( bdff1d1274e982368052a6cdf704c69c0e1a8678 ) support this? I'll see if I can get this to install on cheyenne and run with mpich and/or MPT
By "support this", are you asking whether it patches GCC 8.1.0? If so, yes.
Yes, and hopefully works for most tests, even some of the multi-dimensional array tests (even if it doesn’t pass your comprehensive test yet)
I’d like to go ahead and try this version with coarray_icar if there is some chance it will work.
I think @scrasmussen successfully got coarray_icar to run successfully with a recent version of the OpenCoarrays master branch and a relatively recent version of GCC. He thinks it might have been GCC 7. I suspect it was GCC 9 (the GCC trunk), but he doesn't recall for sure so it's best to give it a try. Here's a more complete set of commands and this time I'll use the short versions of the installer flags:
git checkout https://github.com/sourceryinstitute/opencoarrays
cd opencoarrays
./install.sh -p gcc -I 8.1.0 -z -j 4 -y -i "${HOME}/opt/gnu/8.1.0"
export PATH= "${HOME}/opt/gnu/8.1.0/bin:$PATH"
export LD_LIBRARY_PATH= "${HOME}/opt/gnu/8.1.0/lib:$LD_LIBRARY_PATH"
./install.sh -p mpich -I 3.2 -j 4 -i "${HOME}/opt/mpich/3.2/gnu/8.1.0"
export PATH= "${HOME}/opt/mpich/3.2/gnu/8.1.0/bin:$PATH"
./install.sh -j 4 -i "${HOME}/opt/opencoarrays/2.1.0/gnu/8.1.0/bin:$PATH"
source ${HOME}/opt/opencoarrays/2.1.0/gnu/8.1.0/setup.sh"
cd prerequisites/builds/opencoarrays/2.1.0
ctest --timeout 5
I hope this helps.
I just checked my build and it was with the gcc-8-branch
branch. It was also with a version of an OpenCoarray's branch that is essentially the same one that eventually made it into the master branch. So I think using GCC 9
and OpenCoarray's master branch should work.
Sounds good, to install the trunk, use something like
./install.sh -p gcc -b trunk -z -j 4 -y -i "${HOME}/opt/gnu/8.1.0"
Currently Cori has Intel v18 Update 2, and Cray Fortran 8.6.5.
Does cori also have gfortran?
Yep. If you load the PrgEnv-gnu
module then you get:
friesen@cori04:~> module avail gcc
------------------------------ /opt/modulefiles -------------------------------
gcc/4.9.3 gcc/6.1.0 gcc/7.1.0(default) gcc/7.3.0
gcc/5.3.0 gcc/6.3.0 gcc/7.2.0
Do we stick with gfortran 6.3 or can we get gfortran 8? to work (on all machines)
Which version of ifort is available on cori (cheyenne has 16, 17, 18 all x.0.1 and 16.0.3)
Cray ftn version? (not on Cheyenne obviously)