gutmann / coarray_icar

Testing implementation of CoArrays for the basic ICAR algorithms
MIT License
5 stars 6 forks source link

Select common compilers across machines? #36

Open gutmann opened 6 years ago

gutmann commented 6 years ago

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)

rouson commented 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.

gutmann commented 6 years ago

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

rouson commented 6 years ago

By "support this", are you asking whether it patches GCC 8.1.0? If so, yes.

gutmann commented 6 years ago

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.

rouson commented 6 years ago

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.

scrasmussen commented 6 years ago

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.

rouson commented 6 years ago

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"
bcfriesen commented 6 years ago

Currently Cori has Intel v18 Update 2, and Cray Fortran 8.6.5.

gutmann commented 6 years ago

Does cori also have gfortran?

bcfriesen commented 6 years ago

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