From 52f5fa03049be3ef2d2786fd2c7b89f1904120fe Mon Sep 17 00:00:00 2001 From: Alistair Adcroft Date: Wed, 19 Apr 2017 14:24:35 -0400 Subject: [PATCH] Added reproduction across layout/symmetric memory tests to Travis Squashed commit of the following: commit ed6e3fbc32a648790d1b7acedcc291b7a984b314 Author: Alistair Adcroft Date: Wed Apr 19 13:52:03 2017 -0400 Added symmetric executable and circle_obcs - Replaced sloshing/rho with all flow_downslope versions - Added symmetric compile to use for all multi-PE runs - Added circle_obcs commit 5ddbef88d42f329b41518e5c61e18fcd37885843 Author: Alistair Adcroft Date: Sun Apr 16 10:11:37 2017 -0400 Added sloshing/rho commit 13beedf8614f1d1aca6a360f31b3ce779cc59353 Author: Alistair Adcroft Date: Sun Apr 16 09:57:57 2017 -0400 Caching MOM objects commit 877e9a0416783b47bd8354980d59ff6e174af4c1 Author: Alistair Adcroft Date: Sun Apr 16 08:51:17 2017 -0400 Reduced size of benchmark - Hit a stacksize limit on Travis VMs commit 6769f65ced65eea6aee260906eb29c1365e3603c Author: Alistair Adcroft Date: Sun Apr 16 00:27:07 2017 -0400 Added benchmark test commit 05bac9c1f5333f159685df06810030658b613f7a Author: Alistair Adcroft Date: Sun Apr 16 00:18:17 2017 -0400 Added more expts commit a6d2feed7a00e569d10ebc78754b91c23e9e6c3d Author: Alistair Adcroft Date: Sun Apr 16 00:01:10 2017 -0400 Added double_gyre test commit da65a095f96351dd0ce73c284ac398c10e441910 Author: Alistair Adcroft Date: Sat Apr 15 23:44:48 2017 -0400 Try caching MOM objects - Also used before_cache phase. commit 38de24122ec6dfe13b28b5b50fbcf47a04aaf614 Author: Alistair Adcroft Date: Sat Apr 15 23:35:19 2017 -0400 Split FMS build out of install phase commit f62bc2a47e49bb34c2cbc100e06d01a6166b8544 Author: Alistair Adcroft Date: Sat Apr 15 21:18:29 2017 -0400 Added caching of FMS library commit cdf6a43f52c58885767ffb1f643d5d735d57ac68 Author: Alistair Adcroft Date: Sat Apr 15 18:26:49 2017 -0400 Added install stage to Travis setup - Moved cloning of house_cleaning scripts to install phase - Added MOM6-examples, FMS and mkmf to install phase - Compile required subset of FMS - Copmile MOM6 --- .travis.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f5ae16befc..efcd7344c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,66 @@ # This is a not a c-language project but we use the same environment. language: c +# For saving time... +cache: + directories: + - my_cache + +# Environment +before_install: + - sudo apt-get install tcsh pkg-config gfortran netcdf-bin libnetcdf-dev openmpi-bin libopenmpi-dev + +# Install tools and dependencies +install: + - git clone https://github.com/adcroft/house_cleaning.git + - test -d MOM6-examples || git clone https://github.com/NOAA-GFDL/MOM6-examples.git + - (cd MOM6-examples/ ; git checkout dev/master ; git pull) + - (cd MOM6-examples/src/ && git submodule init mkmf FMS && git submodule update mkmf FMS) + - test -f my_cache/FMS-src.tgz && tar zxf my_cache/FMS-src.tgz || echo "No cache of FMS src" + - (cd MOM6-examples/src/ && git submodule update FMS) + - test -f my_cache/FMS-obj.tgz && (tar zxf my_cache/FMS-obj.tgz) || echo "No cache of FMS objects" + +# Build FMS +before_script: + - echo "Building FMS library" + && mkdir -p build/FMS && (cd build/FMS + && rm -f path_names + && ../../MOM6-examples/src/mkmf/bin/list_paths ../../MOM6-examples/src/FMS/{platform,include,memutils,constants,mpp,fms,time_manager,diag_manager,data_override,coupler/ensemble_manager.F90,axis_utils,horiz_interp,time_interp,astronomy,mosaic} + && ../../MOM6-examples/src/mkmf/bin/mkmf -t ../../MOM6-examples/src/mkmf/templates/linux-gnu.mk -p libfms.a -c '-Duse_libMPI -Duse_netCDF -DSPMD -DUSE_LOG_DIAG_FIELD_INFO -DMAXFIELDMETHODS_=500 -Duse_AM3_physics' path_names + && make FC=mpif90 CC=mpicc NETCDF=3 REPRO=1 libfms.a) + - echo -e '#override DAYMAX=0.125\n#override ENERGYSAVEDAYS=0.01\n#override NIGLOBAL=120\n#override NJGLOBAL=60' > MOM6-examples/ocean_only/benchmark/MOM_override + # Tests to run script: - - git clone https://github.com/adcroft/house_cleaning.git - ./house_cleaning/trailer.py -e TEOS10 src config_src + - echo "Compiling non-symmetric MOM6" + && mkdir -p build/ocn && (cd build/ocn + && ../../MOM6-examples/src/mkmf/bin/list_paths ../../{config_src/dynamic,config_src/solo_driver,src/{*,*/*}}/ + && ../../MOM6-examples/src/mkmf/bin/mkmf -t ../../MOM6-examples/src/mkmf/templates/linux-gnu.mk -o '-I../FMS' -p MOM6 -l '-L../FMS -lfms' -c '-Duse_libMPI -Duse_netCDF -DSPMD -DUSE_LOG_DIAG_FIELD_INFO -DMAXFIELDMETHODS_=500 -Duse_AM3_physics' path_names + && make FC=mpif90 CC=mpicc LD=mpif90 NETCDF=3 REPRO=1 MOM6) + - echo "Compiling symmetric MOM6" + && mkdir -p build/symocn && (cd build/symocn + && ../../MOM6-examples/src/mkmf/bin/list_paths ../../{config_src/dynamic_symmetric,config_src/solo_driver,src/{*,*/*}}/ + && ../../MOM6-examples/src/mkmf/bin/mkmf -t ../../MOM6-examples/src/mkmf/templates/linux-gnu.mk -o '-I../FMS' -p MOM6 -l '-L../FMS -lfms' -c '-Duse_libMPI -Duse_netCDF -DSPMD -DUSE_LOG_DIAG_FIELD_INFO -DMAXFIELDMETHODS_=500 -Duse_AM3_physics' path_names + && make FC=mpif90 CC=mpicc LD=mpif90 NETCDF=3 REPRO=1 MOM6) + - (cd MOM6-examples/ocean_only/double_gyre && mkdir -p RESTART && mpirun -n 1 ../../../build/ocn/MOM6 1> log) + - (cd MOM6-examples/ocean_only/flow_downslope/layer && mkdir -p RESTART && mpirun -n 1 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/rho && mkdir -p RESTART && mpirun -n 1 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/sigma && mkdir -p RESTART && mpirun -n 1 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/z && mkdir -p RESTART && mpirun -n 1 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/benchmark && mkdir -p RESTART && mpirun -n 1 ../../../build/ocn/MOM6 1> log) + - (cd MOM6-examples/ocean_only/circle_obcs && mkdir -p RESTART && mpirun -n 1 ../../../build/symocn/MOM6 1> log) + - md5sum MOM6-examples/ocean_only/{*,*/*}/ocean.stats > stats.md5 + - (cd MOM6-examples/ocean_only/double_gyre && mkdir -p RESTART && mpirun -n 2 ../../../build/symocn/MOM6 1> log) + - (cd MOM6-examples/ocean_only/flow_downslope/layer && mkdir -p RESTART && mpirun -n 2 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/rho && mkdir -p RESTART && mpirun -n 2 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/sigma && mkdir -p RESTART && mpirun -n 2 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/flow_downslope/z && mkdir -p RESTART && mpirun -n 2 ../../../../build/ocn/MOM6 1>log) + - (cd MOM6-examples/ocean_only/benchmark && mkdir -p RESTART && mpirun -n 4 ../../../build/symocn/MOM6 1> log) + - (cd MOM6-examples/ocean_only/circle_obcs && mkdir -p RESTART && mpirun -n 4 ../../../build/symocn/MOM6 1> log) + - md5sum -c stats.md5 + +# Move items into cache +before_cache: + - tar zcf my_cache/FMS-src.tgz MOM6-examples/src/FMS + - tar zcf my_cache/FMS-obj.tgz build/FMS