Skip to content

Commit

Permalink
Release candidate for HTR-1.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
mariodirenzo committed Jul 6, 2020
1 parent 69dbf5c commit eec242a
Show file tree
Hide file tree
Showing 95 changed files with 9,315 additions and 2,353 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.hdf filter=lfs diff=lfs merge=lfs -text
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,7 @@ __pycache__

src/config_schema.h
src/*-desugared.rg
src/version.h
src/version.rg
test/*.h
test/*-desugared.rg
195 changes: 195 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
###
### Variables
###

# Global variables (will be set in every job):
variables:
MAX_DIM: "4"
LEGION_BRANCH: "parallelizer-dcr-new"
HTR_DIR: "$CI_PROJECT_DIR"
REALM_BACKTRACE: "1"
# TIMELIMIT: "600" # each test should take less than 10 minutes

# Local variables (included on a case-by-case basis in each job):
#.gcc48: &gcc48
# CXX: "g++-4.8"
#.gcc49: &gcc49
# CXX: "g++-4.9"
#.gcc5: &gcc5
# CXX: "g++-5"
#.gcc6: &gcc6
# CXX: "g++-6"
#.gcc7: &gcc7
# CXX: "g++-7"
#.gcc8: &gcc8
# CXX: "g++-8"
#
#.clang35: &clang35
# CXX: "clang++-3.5"
#.clang38: &clang38
# CXX: "clang++-3.8"
#.clang7: &clang7
# CXX: "clang++-7"
#.clang8: &clang8
# CXX: "clang++-8"
#
#.terra35: &terra35
# LLVM_CONFIG: "llvm-config-3.5"
# TERRA_DIR: "/usr/local/terra35"
#.terra38: &terra38
# LLVM_CONFIG: "llvm-config-3.8"
# TERRA_DIR: "/usr/local/terra38"
#.terra70: &terra70
# LLVM_CONFIG: "llvm-config-7"
# TERRA_DIR: "/usr/local/terra70"

.debug: &debug
DEBUG: "1"
.release: &release
DEBUG: "0"

.openmp: &openmp
USE_OPENMP: "1"
.hdf5: &hdf5
USE_HDF: "1"
.llvm: &llvm
USE_LLVM: "1"
.cuda: &cuda
USE_CUDA: "1"
.gasnet: &gasnet
USE_GASNET: "1"

.prof: &prof
USE_PROF: "1"

###
### Setup
###

# These commands will run before each job.
before_script:
- |
if [[ "$(hostname)" = ctr-205-1.stanford.edu ]]; then
module load mpi/mpich-3.0-x86_64
export CC=mpicc
export CXX=mpicxx
export LEGION_DIR=/home/gitlab-runner/legion
export HDF_ROOT=$LEGION_DIR/language/hdf/install
export USE_GASNET=0
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LEGION_DIR/bindings/regent:$LEGION_DIR/language/hdf/install/lib"
cd $HTR_DIR
fi
# Make sure that we are running the last version of Legion
- |
cd $LEGION_DIR/language
git fetch
LOCAL0=$(git rev-parse @)
git checkout $LEGION_BRANCH
UPSTREAM=${1:-'@{u}'}
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse "$UPSTREAM")
if [ $LOCAL != $REMOTE ]; then
echo "Updating Legion"
git reset --hard $REMOTE
scripts/setup_env.py --llvm-version 38
elif [ $LOCAL != $LOCAL0 ]; then
echo "Building Legion on the new branch"
scripts/setup_env.py --llvm-version 38
fi
cd $HTR_DIR
###
### Tags
###

.ctr-205-1: &ctr-205-1
tags:
- centos7
- ctr-205-1

###
### Docker Image
###

# Each job will run in a fresh container with this image.
#.image: &image
# image: stanfordlegion/gitlab-ci:ubuntu16.04 # i.e. https://hub.docker.com/r/stanfordlegion/gitlab-ci/

###
### Tests
###

# Unit tests that check the solver component by component.
.unitTests: &unitTests
script:
- cd unitTests/configTest
- make
- ./configTest.exec
- cd ../..

- cd unitTests/mathUtilsTest
- make
- ./mathUtilsTest.exec
- cd ../..

- cd unitTests/hdfTest
- make
- ./hdfTest.exec
- cd ../..

- cd unitTests/mixTest
- make
- ./mixTest.exec
- cd ../..

- cd unitTests/geometryTest
- make
- ./geometryTest.exec
- cd ../..

- cd unitTests/metricTest
- make -j
- ./metricTest_Periodic.exec
- ./metricTest_Collocated.exec
- ./metricTest_Staggered.exec
- cd ../..

- cd unitTests/cflTest
- make
- ./cflTest.exec
- cd ../..

- cd unitTests/chemTest
- make
- ./chemTest.exec
- cd ../..

- cd unitTests/variablesTest
- make
- ./variablesTest.exec
- cd ../..

.solverTests: &solverTests
script:
- NO_ATOMIC=1 make -j -C src/
- cd solverTests
- python ./test.py
- cd ../..

###
### Jobs
###

# Each item below defines a job.

ctr-205-1_release_unitTests:
<<: [*ctr-205-1, *unitTests]
variables:
<<: [*release, *openmp, *hdf5]

ctr-205-1_release_solverTests:
<<: [*ctr-205-1, *solverTests]
variables:
<<: [*release, *openmp, *hdf5]
11 changes: 11 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
This file lists the major changes as they appear in the master branch.

Version 1.1.0 (April 23, 2020)
- basic test suite added to the repository
- timing infrastructure added to the main task of the solver
- NSCBC_Outflow available on the yNeg surface of the domain
- Added compile time flag to dump fields when a NaN appears
- Added compile time flag to deactivate atomic coherence mode
- New Sinh, SinhPlus, and SinhMinus grid stretching available to the user
- Less verbose input for BCs based on unions

78 changes: 77 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Organization of the repository
> > [certainty.slurm](src/certainty.slurm): Submission script for Certainty (@ Stanford) (use as a template script for slurm system)
> > [quartz.slurm](src/quartz.slurm): Submission script for Quartz (@ LLNL) (use as a template script for slurm system)
> > [lassen.lsf](src/lassen.lsf): Submission script for Lassen (@ LLNL) (use as a template script for IBM Spectrum LSF system)
> > [galileo.slurm](src/galileo.slurm): Submission script for Galileo (@ Cineca) (use as a template script for slurm system)
> > [blacklist](src/blacklist): Folder containing potential blacklists of nodes that should not be used
> [scripts/](scripts/)
Expand All @@ -52,7 +53,7 @@ Organization of the repository
> > [modules/](scripts/modules/): Various utility modules used by the python scripts
> [testcases/](testcases/)
> > [README.md](testcases/README.md): Instructions on how to run the provided testcases
> > [README.md](testcases/README.md): Instructions on how to run the provided testcases
> > [SodProblem/](testcases/SodProblem/): Contains the setup and postporcessing files needed to run Sod's shock tube
> > [LaxProblem/](testcases/LaxProblem/): Contains the setup and postporcessing files needed to run Lax's shock tube
> > [ShuOsherProblem/](testcases/ShuOsherProblem/): Contains the setup and postporcessing files needed to run Shu-Osher's shock tube
Expand All @@ -67,6 +68,23 @@ Organization of the repository
> > [MultispeciesTBL/](testcases/MultispeciesTBL/): Contains the setup and postporcessing files needed to run Multispecies hypersonic boundary layer
> > [scalingTest/WS](testcases/scalingTest/WS): Contains the setup and postporcessing files needed to run the weak saling test
> [unitTests/](unitTests/)
> > [cflTest/](unitTests/cflTest/): Contains the unit test for the cfl module
> > [chemTest/](unitTests/chemTest/): Contains the unit test for the chemistry module
> > [configTest/](unitTests/configTest/): Contains the unit test for the config schema module
> > [geometryTest/](unitTests/geometryTest/): Contains the unit test for the geometry module
> > [hdfTest/](unitTests/hdfTest/): Contains the unit test for the hdf helper module
> > [mathUtilsTest/](unitTests/mathUtilsTest/): Contains the unit test for the mathUtils module
> > [metricTest/](unitTests/metricTest/): Contains the unit test for the metric module
> > [mixTest/](unitTests/mixTest/): Contains the unit test for the mixture modules
> > [variablesTest/](unitTests/variablesTest/): Contains the unit test for the variables module
> [solverTests/](solverTests/)
> > [3DPeriodic/](solverTests/3DPeriodic/): Contains the solver test for the tri-periodic 3D testcase
> > [3DPeriodic_Air/](solverTests/3DPeriodic_Air): Contains the solver test for the tri-periodic 3D testcase with AirMix
> > [ChannelFlow/](solverTests/ChannelFlow): Contains the solver test for the bi-periodic ChannelFlow testcase
> > [BoundaryLayer/](solverTests/BoundaryLayer): Contains the solver test for a compressible boundary layer

Setup (generic)
===============
Expand Down Expand Up @@ -347,6 +365,8 @@ export CUDA_HOME=/usr/tce/packages/cuda/cuda-9.2.148
export CUDA="$CUDA_HOME"
export GPU_ARCH=volta
export GROUP=???
export USE_CUDA=1
export USE_OPENMP=1
export USE_GASNET=1
Expand Down Expand Up @@ -376,3 +396,59 @@ lalloc 1 scripts/setup_env.py --llvm-version 38 --terra-branch 'puc_lua_master'
cd "$HTR_DIR"/src
lalloc 1 -W 120 make
```

Setup (Galileo @ Cineca)
============================

### Add to shell startup

```
# Module loads
module load gnu
module load openmpi/3.1.1--gnu--6.1.0
module load cuda/9.0
module load python
# Build config
export CC=gcc
export CXX=g++
export CONDUIT=ibv
# Path setup
export LEGION_DIR=???
export HDF_ROOT="$LEGION_DIR"/language/hdf/install
export HTR_DIR=???
export SCRATCH=???
# CUDA config
export CUDA_HOME="/cineca/prod/compilers/cuda/9.0/none"
export CUDA="$CUDA_HOME"
export GPU_ARCH=kepler
export ACCOUNT=[ACCOUNT TO BE CHARGED]
export USE_CUDA=1
export USE_OPENMP=1
export USE_GASNET=1
export USE_HDF=1
export MAX_DIM=4
```

### Download software

```
git clone -b htr-release https://gitlab.com/mario.direnzo/legion.git "$LEGION_DIR"
git clone https://[email protected]/mdirenzo/prometeo.git "$HTR_DIR"
```

### Install Legion

```
cd "$LEGION_DIR"/language
scripts/setup_env.py --llvm-version 38 --terra-url 'https://github.com/StanfordLegion/terra.git' --terra-branch 'luajit2.1'
```

### Compile Prometeo

```
cd "$HTR_DIR"/src
srun --cpus-per-task=3 --mem 30000 -p gll_usr_gpuprod -t 0:50:00 make -j &
```
Loading

0 comments on commit eec242a

Please sign in to comment.