Skip to content

Building ForTrilinos for use in E3SM

Kate Evans edited this page Jun 30, 2018 · 1 revision

Build on Titan

Per @kevans32 instructions:

First, create module environment:

$ module swap PrgEnv-pgi PrgEnv-gnu
$ module load cmake3/3.9.0 acml
$ module load cray-hdf5-parallel/1.10.0.3
$ module load cray-netcdf-hdf5parallel/4.4.1.1.3
(not yet tested but may need) $ module load cray-parallel-netcdf/1.7.0 
$ module load python/2.7.9
$ module load boost/1.57.0

Then, configure using the following script

#!/usr/bin/env bash

echo "Netcdf dir = " ${NETCDF_DIR}

EXTRA_ARGS=$@

rm -f CMakeCache.txt
rm -rf CMakeFiles/

ARGS=(
      -D CMAKE_INSTALL_PREFIX:PATH=/lustre/atlas1/cli106/proj-shared/4ue/Trilinos/reg_build/install
      -D Netcdf_LIBRARY_DIRS:FILEPATH="${NETCDF_DIR}/lib"
      -D Netcdf_INCLUDE_DIRS:FILEPATH="${NETCDF_DIR}/include"
      -D CMAKE_BUILD_TYPE:STRING=NONE
      -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING=""
      -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF
      -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF
\
      -D Trilinos_ENABLE_Fortran:BOOL=ON
      -D CMAKE_CXX_FLAGS="-Wall -Wpedantic"
      -D Trilinos_ENABLE_EXPLICIT_INSTANTIATION=ON
\
      -D Trilinos_ENABLE_Teuchos:BOOL=ON \
      -D HAVE_TEUCHOS_COMM_TIMERS=ON \
      -D Trilinos_ENABLE_Shards:BOOL=ON \
      -D Trilinos_ENABLE_Sacado:BOOL=ON \
      -D Trilinos_ENABLE_Epetra:BOOL=ON \
      -D Trilinos_ENABLE_EpetraExt:BOOL=ON \
      -D Trilinos_ENABLE_Ifpack:BOOL=ON \
      -D Trilinos_ENABLE_AztecOO:BOOL=ON \
      -D Trilinos_ENABLE_Amesos:BOOL=ON \
      -D Trilinos_ENABLE_Anasazi:BOOL=ON \
      -D Trilinos_ENABLE_Belos:BOOL=ON \
      -D Trilinos_ENABLE_Phalanx:BOOL=OFF \
      -D Trilinos_ENABLE_Intrepid:BOOL=ON \
      -D Trilinos_ENABLE_ML:BOOL=ON \
      -D Trilinos_ENABLE_NOX:BOOL=ON \
      -D Trilinos_ENABLE_Stratimikos:BOOL=ON \
      -D Trilinos_ENABLE_Thyra:BOOL=ON \
      -D Trilinos_ENABLE_Rythmos:BOOL=ON \
      -D Trilinos_ENABLE_MOOCHO:BOOL=ON \
      -D Trilinos_ENABLE_OptiPack:BOOL=ON \
      -D Trilinos_ENABLE_GlobiPack:BOOL=ON \
      -D Trilinos_ENABLE_Stokhos:BOOL=ON \
      -D Trilinos_ENABLE_Isorropia:BOOL=ON\
      -D Trilinos_ENABLE_Piro:BOOL=ON \
      -D Trilinos_ENABLE_Teko:BOOL=ON \
\
      -D Trilinos_ENABLE_STK:BOOL=OFF \
      -D Trilinos_ENABLE_TriKota:BOOL=OFF \
      -D TriKota_ENABLE_DakotaCMake:BOOL=OFF \
      -D DAKOTA_ENABLE_TESTS:BOOL=OFF \
      -D TPL_FIND_SHARED_LIBS:BOOL=OFF \
\
      -D Trilinos_ENABLE_SEACASIoss:BOOL=OFF \
      -D Trilinos_ENABLE_ThreadPool:STRING="ON" \
      -D Trilinos_ENABLE_Pamgen:BOOL=ON \
      -D TPL_ENABLE_Netcdf:BOOL=ON \
      -D TPL_Netcdf_INCLUDE_DIRS:PATH="${NETCDF_DIR}/include" \
      -D Netcdf_LIBRARY_DIRS:PATH="${NETCDF_DIR}/lib" \
\
      -D Trilinos_ENABLE_Mesquite:BOOL=OFF\
      -D Trilinos_ENABLE_Zoltan:BOOL=ON \
      -D Trilinos_ENABLE_FEI:BOOL=OFF\
\
      -D Trilinos_ENABLE_TESTS:BOOL=OFF \
      -D Piro_ENABLE_TESTS:BOOL=OFF \
      -D Trilinos_ENABLE_EXAMPLES:BOOL=OFF \
      -D TPL_ENABLE_MPI:BOOL=ON \
      -D TPL_ENABLE_Boost:BOOL=OFF \
\
      -D Anasazi_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D AztecOO_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Belos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Ifpack_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D NOX_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Phalanx_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=OFF \
      -D Rythmos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Stokhos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Stratimikos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Thyra_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
      -D Trilinos_ENABLE_TEUCHOS_TIME_MONITOR:BOOL=ON \
\
      -D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
      -D Trilinos_VERBOSE_CONFIGURE:BOOL=OFF \
      -D CMAKE_CXX_FLAGS:STRING="-O3 -frounding-math" \
      -D CMAKE_Fortran_FLAGS:STRING="-O3 -frounding-math" \
      -D Trilinos_ENABLE_Export_Makefiles:BOOL=ON \
\
      -D CMAKE_C_COMPILER:FILEPATH="cc" \
      -D CMAKE_CXX_COMPILER:FILEPATH="CC" \
      -D CMAKE_Fortran_COMPILER:FILEPATH="ftn" \
      -D TPL_BLAS_LIBRARIES:STRING="sci_gnu_mp" \
      -D TPL_LAPACK_LIBRARIES:STRING="sci_gnu_mp" \
      -DTPL_ENABLE_Pthread:BOOL=OFF \
      -DTPL_ENABLE_BinUtils:BOOL=OFF \
\
      -D MPI_EXEC:FILEPATH=aprun \
      -D MPI_EXEC_MAX_NUMPROCS:STRING=4 \
      -D MPI_EXEC_NUMPROCS_FLAG:STRING=-n \

    ### FORTRILINOS ###
      -D Trilinos_ENABLE_ForTrilinos=ON
      -D ForTrilinos_ENABLE_EXAMPLES=ON
      -D ForTrilinos_ENABLE_TESTS=ON

)
cmake EXTRA_ARGS=$@ ..

It does not make, yet, will post update here.