Skip to content

Building on Frontera

Karl W. Schulz edited this page Sep 4, 2021 · 11 revisions

Assuming you are starting with a default login environment using Intel compilers, this example builds the CPU version of TPS.

Enable additional modules

$ export MODULEPATH=/work/00161/karl/frontera/sw/modules/:$MODULEPATH

Load s/w dependencies

$ ml load hypre metis
$ ml load bats mfem grvy git-lfs

Note: make sure you have git-lfs initialized after loading the module since it is not part of default get setup on Frontera

$ git lfs install

You may also need to git lfs pull in your repo if you had cloned it prior to setting up git-lfs.

Expose Hypre settings

export HYPRE_INC=$TACC_HYPRE_INC
export HYPRE_LIB=$TACC_HYPRE_LIB

Summary of current env:

$ ml list

Currently Loaded Modules:
  1) intel/19.1.1   4) autotools/1.2   7) pmix/3.1.4     10) TACC         13) bats/1.4.1   16) git-lfs/2.13.3
  2) impi/19.0.9    5) python3/3.7.0   8) hwloc/1.11.12  11) hypre/2.19   14) grvy/0.35.0
  3) git/2.24.1     6) cmake/3.20.3    9) xalt/2.10.27   12) metis/5.1.0  15) mfem/4.2

Build and test

The valgrind check does not fail as expected with icc, so disabling that:

$ ./configure --disable-valgrind
$ make check

$ make check
Making check in src
make[1]: Entering directory `/home1/00161/karl/repos/tps/src'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home1/00161/karl/repos/tps/src'
Making check in test
make[1]: Entering directory `/home1/00161/karl/repos/tps/test'
make  
make[2]: Entering directory `/home1/00161/karl/repos/tps/test'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home1/00161/karl/repos/tps/test'
make  check-TESTS
make[2]: Entering directory `/home1/00161/karl/repos/tps/test'
make[3]: Entering directory `/home1/00161/karl/repos/tps/test'
PASS: cyl3d.test 1 [cyl3d] check for input file input.4iters.cyl
PASS: cyl3d.test 2 [cyl3d] run tps with input -> input.4iters.cyl
PASS: cyl3d.test 3 [cyl3d] verify tps output with input -> input.4iters.cyl
PASS: cyl3d.test 4 [cyl3d] verify git sha in HDF5 file
PASS: cyl3d.test 5 [cyl3d] verify exit code if restart files missing
PASS: cyl3d.test 6 [cyl3d] verify consistent solution with restart from 2 iters
PASS: cyl3d.test 7 [cyl3d] verify tps output after variable p restart
PASS: cyl3d.test 8 [cyl3d] verify serial restart consistency using 2 mpi tasks
PASS: cyl3d.test 9 [cyl3d] verify serial restart consistency using 4 mpi tasks
PASS: cyl3d.test 10 [cyl3d] verify serialized restart switching processors from 2 -> 4 mpi tasks
PASS: cyl3d.test 11 [cyl3d] verify restart from partitioned files to generate a serialized output (2 mpi tasks)
PASS: cyl3d.test 12 [cyl3d] verify two back to back (partitioned) restarts using 2 tasks
PASS: cyl3d.mflow.test 1 [cyl3d.mflow.outlet] check for input file input.2iters.mflow.cyl
PASS: cyl3d.mflow.test 2 [cyl3d.mflow.outlet] verify outlet area calculation with input -> input.2iters.mflow.cyl
PASS: cyl3d.mflow.test 3 [cyl3d.mflow.outlet] verify tps output with input -> input.2iters.mflow.cyl
PASS: cyl3d.mflow.test 4 [cyl3d.mflow.outlet] verify tps output with input -> inputs/input.2iters.mflow.bulkVisc.dtconst.cyl
PASS: cyl3d.dtconst.test 1 [cyl3d] check for input file  input.dtconst.cyl
PASS: cyl3d.dtconst.test 2 [cyl3d] run tps with input ->  input.dtconst.cyl
PASS: cyl3d.dtconst.test 3 [cyl3d] verify tps output with input ->  input.dtconst.cyl
PASS: cyl3d.dtconst.test 4 [cyl3d] verify tps output from 2 mpi tasks with input ->  input.dtconst.cyl
PASS: die.test 1 [cyl3d] verify solution terminates early with presence of DIE file
PASS: averages.test 1 [averages] caseA: run serial case
PASS: averages.test 2 [averages] caseB: run parallel case
PASS: averages.test 3 [averages] caseC: restart from a serialized solution
PASS: averages.test 4 [averages] caseD: restart from solution without averaged data
PASS: wedge.test 1 [2d/wedge] check for input file input.2d.wedge
PASS: wedge.test 2 [2d/wedge] run tps with input -> input.2d.wedge
PASS: wedge.test 3 [2d/wedge] verify computed inlet area in output -> wedge.log
PASS: wedge.test 4 [2d/wedge] verify # of inlet faces detected -> wedge.log
PASS: wedge.test 5 [2d/wedge] verify computed inlet outlet in output -> wedge.log
PASS: wedge.test 6 [2d/wedge] verify # of outlet faces detected -> wedge.log
============================================================================
Testsuite summary for tps 1.0
============================================================================
# TOTAL: 31
# PASS:  31
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================