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

Updated README.md 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
- LAPACK
- 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:
Example from inside the `code` directory:
```bash
./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:
```bash
module load devel/cmake/3.16
module load compiler/gnu/9.2
wget --no-check-certificate --quiet https://www.vtk.org/files/release/8.2/VTK-8.2.0.tar.gz
tar xzf VTK-8.2.0.tar.gz
mkdir VTK-build
cd VTK-build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCUMENTATION=OFF -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=~/VTK-install ../VTK-8.2.0
make -j10
make install
cd -
rm -r VTK-8.2.0 VTK-build
```
Example for build and run on bwUniCluster:
Get the code
```bash
git clone https://git.scc.kit.edu/rtsn/rtsn.git
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.:
```bash
find_package( VTK REQUIRED COMPONENTS vtkIOGeometry vtkFiltersCore HINTS ~/VTK-install )
```
As a temporary fix, also set the `BLAZE_BLAS_MODE` preprocessor definition to `0`
```bash
add_compile_definitions( BLAZE_BLAS_MODE=0 )
```
Compile it
```bash
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 ../../
make
./../../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)
TBD
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
```bash
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)
```bash
cd docker build -t rtsn/test:latest .
```
or commit your changes to the image (google that procedure).
Push the new image to `hub.docker.com`
```bash
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