functional-fortran icon indicating copy to clipboard operation
functional-fortran copied to clipboard

Build and test on Cray and IBM platforms

Open milancurcic opened this issue 9 years ago • 6 comments

milancurcic avatar Nov 23 '16 18:11 milancurcic

Anything particular you have in mind here?

boegel avatar Nov 29 '16 12:11 boegel

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

milancurcic avatar Nov 29 '16 15:11 milancurcic

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 avatar Feb 14 '17 09:02 boegel

@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.

milancurcic avatar Feb 14 '17 14:02 milancurcic

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.

milancurcic avatar Feb 16 '17 21:02 milancurcic

I can reproduce the above issue with crayftn-8.5.6.

milancurcic avatar Feb 16 '17 22:02 milancurcic