forked from stanfordhpccenter/HTR-solver
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
69dbf5c
commit eec242a
Showing
95 changed files
with
9,315 additions
and
2,353 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*.hdf filter=lfs diff=lfs merge=lfs -text |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,3 +20,7 @@ __pycache__ | |
|
||
src/config_schema.h | ||
src/*-desugared.rg | ||
src/version.h | ||
src/version.rg | ||
test/*.h | ||
test/*-desugared.rg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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/) | ||
|
@@ -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 | ||
|
@@ -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) | ||
=============== | ||
|
@@ -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 | ||
|
@@ -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 & | ||
``` |
Oops, something went wrong.