Build and test on Cray and IBM platforms
Anything particular you have in mind here?
Yes. If you have access to either Cray (ftn) or IBM (xlf90) Fortran compiler suites, the goal is to confirm that functional-fortran compiles and passes unit tests, i.e.:
git clone https://github.com/wavebitscientific/functional-fortran
cd functional-fortran
cmake .
make
ctest
Quick try on Piz Daint (http://user.cscs.ch/computing_systems/piz_daint/index.html):
kehoste@daint101:~> git clone https://github.com/wavebitscientific/functional-fortran
Cloning into 'functional-fortran'...
remote: Counting objects: 232, done.
remote: Total 232 (delta 0), reused 0 (delta 0), pack-reused 232
Receiving objects: 100% (232/232), 54.74 KiB | 0 bytes/s, done.
Resolving deltas: 100% (140/140), done.
Checking connectivity... done.
kehoste@daint101:~> cd functional-fortran
kehoste@daint101:~/functional-fortran> cmake .
-- The C compiler identification is Cray
-- The CXX compiler identification is Cray
-- Check for working C compiler: /opt/cray/pe/craype/2.5.8/bin/cc
-- Check for working C compiler: /opt/cray/pe/craype/2.5.8/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /opt/cray/pe/craype/2.5.8/bin/CC
-- Check for working CXX compiler: /opt/cray/pe/craype/2.5.8/bin/CC -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- The Fortran compiler identification is unknown
CMake Error: your Fortran compiler: "CMAKE_Fortran_COMPILER-NOTFOUND" was not found. Please set CMAKE_Fortran_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!
See also "/users/kehoste/functional-fortran/CMakeFiles/CMakeOutput.log".
See also "/users/kehoste/functional-fortran/CMakeFiles/CMakeError.log".
kehoste@daint101:~/functional-fortran> module list
Currently Loaded Modulefiles:
1) modules/3.2.10.5 6) cray-libsci/16.11.1 11) gni-headers/5.0.7-4.11 16) rca/2.0.10_g66b76b7-2.51 21) ddt/7.0
2) eswrap/2.0.11-2.2 7) udreg/2.3.2-4.14 12) xpmem/2.0.3_geb8008a-2.11 17) atp/2.0.4 22) craype-haswell
3) cce/8.5.5 8) ugni/6.0.13-2.8 13) job/2.0.2_g98a4850-2.43 18) PrgEnv-cray/6.0.3
4) craype-network-aries 9) pmi/5.0.10-1.0000.11050.0.0.ari 14) dvs/2.5_2.0.70_g1ddb68c-2.144 19) cray-mpich/7.5.0
5) craype/2.5.8 10) dmapp/7.1.0-16.18 15) alps/6.2.5-20.1 20) slurm/16.05.8-1
kehoste@daint101:~/functional-fortran> which ftn
/opt/cray/pe/craype/2.5.8/bin/ftn
CMake logs are available at https://gist.github.com/boegel/cacf9866c36d0449ef72d6d8a1aaaea5
@boegel Thanks! It looks like we just need to add the Cray compiler definition in CMakeLists.txt (currently only Intel and GNU are there). I will follow-up on this.
cmake build rules for Cray ftn are now part of the master branch. However, FC needs to be specified when issuing cmake, e.g. FC=ftn cmake ...
I had chance to try building this with Cray Fortran 8.5.1 and the compiler spends about ~hour building before it fails with the message:
$ make
Scanning dependencies of target functional
[ 2%] Building Fortran object CMakeFiles/functional.dir/src/lib/mod_interfaces.f90.o
[ 4%] Building Fortran object CMakeFiles/functional.dir/src/lib/mod_functional.f90.o
ftn-237 crayftn: LIMIT INSERT_I1, File = /global/homes/m/mcurcic/functional-fortran/src/lib/mod_functional.f90, Line = 1652
Maximum table size has been exceeded for the "attr_tbl".
make[2]: *** [CMakeFiles/functional.dir/src/lib/mod_functional.f90.o] Error 1
make[1]: *** [CMakeFiles/functional.dir/all] Error 2
make: *** [all] Error 2
More later.
I can reproduce the above issue with crayftn-8.5.6.