Commit 347737d1 authored by jannick.wolters's avatar jannick.wolters
Browse files

Updated with CI and more cluster install information

parent 243bf4d2
Pipeline #80187 canceled with stages
in 1 minute and 21 seconds
......@@ -10,7 +10,7 @@ TBD
## Build
### Required dependencies
- Compiler with C++20 support (e.g. g++ v9)
- Compiler with C++20 support (e.g. gcc/g++ version 9)
- cmake >= v3.12.4
- OpenMP
......@@ -53,7 +53,7 @@ The resulting executable will automatically be placed in the `code/bin` folder.
## Run
### Local
Execute the compiled binary and hand over a valid *TOML*-styled config file.
Example from inside the `code` directory:
./bin/RTSN input/example.toml
......@@ -68,19 +68,46 @@ OMP_NUM_THREADS=N mpirun -np J ./bin/RTSN input/example.toml
with `N` equal to the number of shared memory threads and `J` equal to the number of distrubuted memory threads.
### BwUniCluster
Example for build and run on bwUniCluster.
As VTK is not available on the bwUniCluster, it needs to be installed first. This just needs to be done once. Example:
module load devel/cmake/3.16
module load compiler/gnu/9.2
wget --no-check-certificate --quiet
tar xzf VTK-8.2.0.tar.gz
mkdir VTK-build
cd VTK-build
make -j10
make install
cd -
rm -r VTK-8.2.0 VTK-build
Example for build and run on bwUniCluster:
Get the code
git clone
cd rtsn/
git submodule init
git submodule update
Append `HINTS VTK_INSTALL_DIR` to the `find_package( VTK ... )` line in the CMakeLists.txt. E.g.:
find_package( VTK REQUIRED COMPONENTS vtkIOGeometry vtkFiltersCore HINTS ~/VTK-install )
As a temporary fix, also set the `BLAZE_BLAS_MODE` preprocessor definition to `0`
add_compile_definitions( BLAZE_BLAS_MODE=0 )
Compile it
module load devel/cmake/3.16
module load compiler/gnu/9.2
module load mpi/openmpi/4.0
cd code/build/release/
cmake -DCMAKE_BUILD_TYPE=Release ../../
./../../bin/RTSN ../../input/example.toml
make -j10
......@@ -95,7 +122,27 @@ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=True ../../
The resulting `unit_tests` executable will also be placed in `/bin`.
## Continuous Integration (CI)
Every commit on the master branch will trigger a build test and unit tests.
If either of the tests fail you will get an email, telling you the 'pipeline' has failed. If this happens, visit the 'CI/CD' tab and check what went wrong and try to fix the error as soon as possible.
Creating a merge request from a branch into the master branch will (not tested yet) also trigger the tests and your merge will be rejected in case any test fails.
As a temporary solution, these tests will currently be done on a low power virtual machine running on a 24/7 online PC at Jannick's place (i.e. don't create computationally expensive tests right now as they will fail if exceeding 1GB of memory).
If you add additional libraries to the code, these also need to be added to the test environment, i.e. the respective docker container.
Little guide:
Test the library installation in the docker container
docker run -it --rm rtsn/test:latest bash
Note the steps required and add them to the `Dockerfile` in the `scripts` folder.
Build the new container (takes some time)
cd docker build -t rtsn/test:latest .
or commit your changes to the image (google that procedure).
Push the new image to ``
docker push rtsn/test:latest
This last step requires a preceeding `docker login`. Ask Jannick for login credentials.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment