Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
7380f28
Update CMakeLists.txt
groupAcoolmuc Dec 15, 2024
f27a2a1
it now compiles
Dec 15, 2024
7255d8e
Merge pull request #119 from jkr11/Assignment4
MaximilianBoehmichen Dec 17, 2024
94ddbbd
init Assignment5
jkr11 Dec 21, 2024
01ced68
working membranes, working test, TODO: remove flags
jkr11 Dec 22, 2024
337fc13
Particle cleanup
jkr11 Dec 23, 2024
6ff1e5b
tests, diagonal and primitive force
jkr11 Dec 23, 2024
1311ad6
forces and input, xmlreader
jkr11 Dec 25, 2024
f36222c
looks weird for now
jkr11 Dec 25, 2024
e2f58a8
idx force
jkr11 Dec 26, 2024
3c6aab4
force selection and xml input for index force
jkr11 Dec 27, 2024
c2cde99
inlining particle
MaximilianBoehmichen Jan 18, 2025
ec1949e
add optimizations from cnpc
MaximilianBoehmichen Jan 18, 2025
0942bf2
need testing and xml input for thermal motion
MaximilianBoehmichen Jan 18, 2025
b167030
input thermostat
jkr11 Jan 18, 2025
a05e2e5
test passing, virtual continaer
jkr11 Jan 18, 2025
5379df7
clang format
MaximilianBoehmichen Jan 19, 2025
8940961
unfinished
MaximilianBoehmichen Jan 19, 2025
cbd47a5
update
jkr11 Jan 19, 2025
4649ef0
theoretically finished
MaximilianBoehmichen Jan 19, 2025
5b2b138
3d prep, no integration
MaximilianBoehmichen Jan 22, 2025
5c9e03a
add tests for checkpoints (unfinished) fix bug in Argument Parser (re…
jkr11 Jan 22, 2025
157f8ac
3d integration + test for 3d x !y !z periodic
MaximilianBoehmichen Jan 22, 2025
9b1abf3
test for 3d !x y !z periodic
MaximilianBoehmichen Jan 22, 2025
e0f1747
filepaths should work now
jkr11 Jan 22, 2025
c567648
test for 3d !x !y z periodic
MaximilianBoehmichen Jan 22, 2025
4503dbb
tests done, compare all particles by X
jkr11 Jan 22, 2025
c6c2968
remove prints, check velocity in test
jkr11 Jan 22, 2025
4a03bc9
fix docs
jkr11 Jan 22, 2025
618a5fe
test for 3d x y !z periodic
MaximilianBoehmichen Jan 22, 2025
f76e8ce
test for 3d x !y z periodic
MaximilianBoehmichen Jan 22, 2025
4bc0b4d
Merge pull request #127 from jkr11/new_tests
jkr11 Jan 22, 2025
1749e82
test for 3d !x y z periodic
MaximilianBoehmichen Jan 22, 2025
e7b67f8
i hate tests, but now there are an additional 2238 lines of them
MaximilianBoehmichen Jan 22, 2025
d689dce
added probably too few tests that were required by ws4
MaximilianBoehmichen Jan 22, 2025
ea2ec17
pull up head?
jkr11 Jan 22, 2025
3ba8ffd
continue?
jkr11 Jan 22, 2025
601da6e
nocompile, index force in integrator inplace
jkr11 Jan 22, 2025
9b499c1
nocompile, add classes have to fix input now for no reason whatsoever
jkr11 Jan 23, 2025
3232037
it finally compiled
jkr11 Jan 23, 2025
9d3a1e6
running but wrong results
jkr11 Jan 23, 2025
5a9bcb2
final tests
MaximilianBoehmichen Jan 23, 2025
9ab67ce
final fixes
MaximilianBoehmichen Jan 23, 2025
7266ca1
Merge branch 'Assignment5' into flow-simulation
MaximilianBoehmichen Jan 23, 2025
83df01f
process killed when running with axis on?
jkr11 Jan 23, 2025
cb001aa
final fixes
MaximilianBoehmichen Jan 23, 2025
0fd9be6
final fixes2
MaximilianBoehmichen Jan 23, 2025
8b5daea
running for now
jkr11 Jan 24, 2025
de07fb0
tests failing, need to add new default constructor
jkr11 Jan 24, 2025
acaf600
first 10 inputs with influences
MaximilianBoehmichen Jan 24, 2025
0902616
more inputs
MaximilianBoehmichen Jan 24, 2025
a8abd61
still segfault, lifetimes work
jkr11 Jan 24, 2025
a44a56e
Merge pull request #130 from jkr11/flow-simulation
MaximilianBoehmichen Jan 24, 2025
b501701
Merge branch 'Assignment5' into tmp_membrane
jkr11 Jan 24, 2025
a94fe6d
xml failing?
jkr11 Jan 24, 2025
fb224f9
dont know what to do
jkr11 Jan 25, 2025
88f02c5
push for bad compiler
jkr11 Jan 25, 2025
613e6ea
new paths in build script
jkr11 Jan 26, 2025
efb5e6c
fix test paths
jkr11 Jan 26, 2025
77d44c9
test all inputs not failing
jkr11 Jan 26, 2025
cfbc724
mostly tests, some formatting, cases in linkedcells container
jkr11 Jan 26, 2025
f4c05a9
Merge branch 'Assignment5' into build
jkr11 Jan 26, 2025
ae8626f
all tests passing after merge
jkr11 Jan 26, 2025
e2b3b48
finish docs
jkr11 Jan 26, 2025
6b37316
update to only use toplevel buildDir
jkr11 Jan 26, 2025
71cb7e3
update to reflect changes from main
jkr11 Jan 26, 2025
aab4069
renamed to fit with clang format, prevent erros like in harmonic forc…
jkr11 Jan 26, 2025
3db2f3b
Merge remote-tracking branch 'origin/build' into build
jkr11 Jan 26, 2025
909a421
add data analysis scripts for density and the 15x15 grid
MaximilianBoehmichen Jan 26, 2025
40c2271
small fix that heatmap was upside down
MaximilianBoehmichen Jan 26, 2025
b0cc3bc
working
jkr11 Jan 26, 2025
0cc04a6
Merge branch 'build' into tmp_membrane
jkr11 Jan 26, 2025
7617d0e
compiling, devirtualize integrator
jkr11 Jan 26, 2025
cdcde26
Merge pull request #133 from jkr11/tmp_membrane
jkr11 Jan 26, 2025
26e13b7
added interactive force parallization
Michael-Carnuth Jan 27, 2025
101b0ed
???
Michael-Carnuth Jan 27, 2025
818e208
cleaning, time for index force (move after containers are done) and r…
jkr11 Jan 27, 2025
fd12b48
saving trace code here...
Michael-Carnuth Jan 27, 2025
e0877f4
cancer level performance, although seems to work
jkr11 Jan 27, 2025
90b07e9
add some tests, more parallel
jkr11 Jan 27, 2025
666cc4f
remove some debug statements for profiling reasons
MaximilianBoehmichen Jan 27, 2025
203174c
add is_membrane
jkr11 Jan 27, 2025
e60fa36
done first parallelisation
MaximilianBoehmichen Jan 28, 2025
1f8126c
Merge pull request #134 from jkr11/openmp2
jkr11 Jan 28, 2025
096aa1b
fixing tests v1
MaximilianBoehmichen Jan 28, 2025
58030fc
all tests pass now, technically they did not fail before however new …
MaximilianBoehmichen Jan 28, 2025
2ff1414
install libomp in asan
jkr11 Jan 28, 2025
2e6bb44
Update LinkedCellsContainer.cpp
MaximilianBoehmichen Jan 28, 2025
b238fa4
Merge branch 'build' into openmp2
jkr11 Jan 28, 2025
674cc58
fix up tests
jkr11 Jan 28, 2025
b060309
Merge pull request #136 from jkr11/openmp2
jkr11 Jan 28, 2025
0c49f95
Statistics error csv not found
jkr11 Jan 28, 2025
16f390c
fix that csv file paths were passed empty string in absence of Statis…
MaximilianBoehmichen Jan 28, 2025
3c822b8
add TruncatedLennardJones test
jkr11 Jan 28, 2025
846ac74
add SingularGravity tests and IndexForce tests
jkr11 Jan 28, 2025
8834648
corrected test
MaximilianBoehmichen Jan 29, 2025
1360c28
Merge branch 'coolmuc' into build
MaximilianBoehmichen Jan 29, 2025
3fbd626
some parallelization improvement?
MaximilianBoehmichen Jan 29, 2025
b22a435
revert improvement because it would need an array
MaximilianBoehmichen Jan 29, 2025
c943342
new inputs
MaximilianBoehmichen Jan 29, 2025
6fead8b
Merge pull request #138 from jkr11/data_analysis
MaximilianBoehmichen Jan 29, 2025
49485b7
new inputs
MaximilianBoehmichen Jan 29, 2025
bf281cc
Merge pull request #137 from jkr11/build
MaximilianBoehmichen Jan 29, 2025
ca10863
Merge pull request #139 from jkr11/flow-simulation
MaximilianBoehmichen Jan 29, 2025
fb1d952
new inputs
MaximilianBoehmichen Jan 29, 2025
38eaa90
added support for checkpointing membranes + neighbours and added test…
jkr11 Jan 29, 2025
b711d5a
converted old tests to correct form
jkr11 Jan 29, 2025
59651c4
fix xml files
jkr11 Jan 29, 2025
e3837f6
add docs and correct singular gravity test
jkr11 Jan 29, 2025
5464f9a
Update LinkedCellsContainer.cpp
MaximilianBoehmichen Jan 29, 2025
02d724b
Merge pull request #140 from jkr11/membrane_checkpoint_tests
jkr11 Jan 29, 2025
6d2b7e9
Merge pull request #131 from jkr11/build
jkr11 Jan 29, 2025
b915fc6
Merge pull request #141 from jkr11/flow-simulation
MaximilianBoehmichen Jan 29, 2025
df401ba
Merge branch 'Assignment5' into coolmuc
MaximilianBoehmichen Jan 29, 2025
8fa4cf0
Merge pull request #142 from jkr11/coolmuc
MaximilianBoehmichen Jan 29, 2025
d39892a
single iterator
jkr11 Jan 29, 2025
7ca8683
why does a rewrite with copy&paste fix stuff?????
MaximilianBoehmichen Jan 29, 2025
0a48f1d
Merge pull request #143 from jkr11/openmp4
MaximilianBoehmichen Jan 29, 2025
79f21cb
add some opts to interactive force, add intel compiler
jkr11 Jan 29, 2025
22d92a0
revert
MaximilianBoehmichen Jan 29, 2025
b70051e
Update week5_actual3.xml
groupAcoolmuc Jan 29, 2025
0fb5d05
Merge pull request #144 from jkr11/openmp4
groupAcoolmuc Jan 29, 2025
dec02a5
small optimization and starting for parallelization
jkr11 Jan 30, 2025
f7d7fb0
OpenMp optional, all iterators implemented, start strategies
jkr11 Jan 30, 2025
8050a90
Choosing strategy works
jkr11 Jan 30, 2025
70dc106
Merge remote-tracking branch 'origin/openmp4' into openmp4
jkr11 Jan 30, 2025
e3b3713
add test for C18 iterator
jkr11 Jan 30, 2025
fc71292
more accurate test
jkr11 Jan 30, 2025
d2404c1
add Force Buffer test
jkr11 Jan 30, 2025
074540a
fix tests
jkr11 Jan 30, 2025
71d6516
all tests passing, sort had to be reintroduced
jkr11 Jan 30, 2025
40b9989
Merge branch 'Assignment5' into openmp4
jkr11 Jan 30, 2025
befd74f
refactor thermostat to use correct dimensions, make private
jkr11 Jan 30, 2025
2288963
thermostat changes
jkr11 Jan 30, 2025
615e86a
Merge remote-tracking branch 'origin/openmp4' into openmp4
jkr11 Jan 30, 2025
69cd2a8
all tests passing
jkr11 Jan 30, 2025
74d89d6
tests passing even when not parallelized
jkr11 Jan 30, 2025
fed90dd
Merge pull request #145 from jkr11/openmp4
jkr11 Jan 30, 2025
7868348
Merge branch 'main' into Assignment5
jkr11 Jan 30, 2025
7fba379
Merge pull request #125 from jkr11/Assignment5
jkr11 Jan 30, 2025
97bb9d1
docs, renaming, getters + setters, removing dead code, cleanup
jkr11 Jan 30, 2025
c9b877b
finish renaming and cleaning, almost all docs
jkr11 Jan 30, 2025
720e71a
removed most dead code, removed most useless comments
jkr11 Jan 30, 2025
392f66e
Merge pull request #146 from jkr11/clean
jkr11 Jan 30, 2025
849e482
some fixes
jkr11 Jan 30, 2025
4e05a2a
Merge pull request #148 from jkr11/clean
jkr11 Jan 30, 2025
24db539
Merge branch 'coolmuc' into main
jkr11 Jan 30, 2025
198ec16
update
jkr11 Jan 30, 2025
7b6ab75
remove logger output and add openmp to build script
MaximilianBoehmichen Jan 30, 2025
5a42de0
fixed paths
Michael-Carnuth Jan 31, 2025
9e4fe6f
Added doxygen comments and TODOs
Michael-Carnuth Jan 31, 2025
e04b500
Added doxygen comments and TODOs
Michael-Carnuth Jan 31, 2025
2ff66ea
rebuild checkpoint strategy
jkr11 Jan 31, 2025
1494502
added mixing tests
Michael-Carnuth Jan 31, 2025
0621824
explain parallelization in readme
jkr11 Jan 31, 2025
fe9f1b2
remove info prints
jkr11 Jan 31, 2025
ab29e67
Merge pull request #149 from jkr11/docmissing
jkr11 Jan 31, 2025
c8f76a8
Merge pull request #150 from jkr11/readme
jkr11 Jan 31, 2025
09b3e84
Merge pull request #151 from jkr11/mixingtest
jkr11 Jan 31, 2025
4c6cea5
Merge branch 'main' into doxyfix
jkr11 Jan 31, 2025
95729b2
Merge pull request #152 from jkr11/doxyfix
jkr11 Jan 31, 2025
bc117f5
Update README.md
MaximilianBoehmichen Jan 31, 2025
aa32550
add comments, docs, removed all TODOS
jkr11 Jan 31, 2025
6efc1c4
Merge pull request #153 from jkr11/comments
jkr11 Jan 31, 2025
e3c0a71
update readme with correct options
jkr11 Jan 31, 2025
a052d35
Merge pull request #154 from jkr11/readme2
jkr11 Jan 31, 2025
142c0dc
fix readme description of checkpoints
jkr11 Jan 31, 2025
4b2dce1
delete test
jkr11 Jan 31, 2025
90b6125
adjust test comments
jkr11 Jan 31, 2025
f0bc484
remove all dead code
jkr11 Jan 31, 2025
0eb0873
Finally fix checkpointing guide
jkr11 Jan 31, 2025
dad439a
Merge pull request #155 from jkr11/readme2
jkr11 Jan 31, 2025
f7b499a
clang format
MaximilianBoehmichen Jan 31, 2025
e63375b
typo
jkr11 Oct 19, 2025
92cd8ae
backup slides
jkr11 Oct 19, 2025
4a1a2cc
mention slides in readme
jkr11 Oct 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/address-sanitizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:

- name: Install Dependencies
# install libxerces
run: sudo apt install libxerces-c-dev
run: sudo apt install -y libxerces-c-dev libomp-dev

- name: run asan
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/cmake-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,13 @@ jobs:
run: sudo apt install libxerces-c-dev

- name: Setup buildDir
run: mkdir buildDir && cd buildDir && mkdir Release && cd Release
run: mkdir buildDir && cd buildDir

- name: Configure CMake
run: cd buildDir/Release && cmake ../../CMakeLists.txt && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON .
run: cd buildDir && cmake ../CMakeLists.txt && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON .

- name: Build
run: cd buildDir/Release && cmake --build . -- -"j$(nproc)"
run: cd buildDir && cmake --build . -- -"j$(nproc)"

- name: Test
run: cd buildDir/Release/tests && ctest

run: cd buildDir/tests && ctest
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,14 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_compile_options(-O3 -ffast-math -march=native -std=c++17 -Wno-deprecated-declarations)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_compile_options(-O3 -ffast-math -march=native -std=c++17 -Wno-deprecated-declarations)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(-O3 -ffast-math -march=native -std=c++17 -Wno-deprecated-declarations)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message("Using intel compile options")
add_compile_options(-xHost -ipo -qopenmp -O3 -fp-model fast=2)
endif ()

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
include(googletest)
Expand Down Expand Up @@ -37,11 +44,12 @@ endif ()

# Enable DEBUG macro
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
add_compile_options(-ggdb3)
add_compile_definitions(DEBUG)
message("Debug mode is enabled")
endif ()

option(ENABLE_BENCHMARK "Enable benchmark mode" ON)
option(ENABLE_BENCHMARK "Enable benchmark mode" OFF)

if (ENABLE_BENCHMARK)
message("Benchmark mode is enabled")
Expand Down
10 changes: 5 additions & 5 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ WARN_FORMAT = "$file:$line: $text"
# and error messages should be written. If left blank the output is written
# to stderr.

WARN_LOGFILE =
WARN_LOGFILE = warnings.log

#---------------------------------------------------------------------------
# configuration options related to the input files
Expand All @@ -568,11 +568,11 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.

INPUT = ../../src \
../../README.md \
INPUT = ./../src \
./../README.md \


USE_MDFILE_AS_MAINPAGE = ../../README.md
USE_MDFILE_AS_MAINPAGE = ./../README.md

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
Expand Down Expand Up @@ -649,7 +649,7 @@ EXAMPLE_RECURSIVE = YES
# directories that contain image that are included in the documentation (see
# the \image command).

IMAGE_PATH = ../../benchmark/graph.png
IMAGE_PATH = ./../benchmark/graph.png

# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
Expand Down
132 changes: 115 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,103 @@
MolSim - Group A
===

### Slides:

- **[Assignment 1](slides/assignment_1_slides.pdf):** Intro
- **[Assignment 2](slides/assignment_2_slides.pdf):** Performance and Tests
- **[Assignment 3](slides/assignment_3_slides.pdf):** Linked Cells Container
- **[Assignment 4](slides/assignment_4_slides.pdf):** Boundary Conditions & SuperMUC
- **[Assignment 5](slides/assignment_5_slides.pdf):** Parallelization Schemes


## Dependencies

- Cmake 3.24
- Doygen 1.9.8 (`sudo apt install doxygen`)
- Cmake 3.28.3
- Doxygen 1.9.8 (`sudo apt install doxygen`)
- Libxerces (`sudo apt install libxerces-c-dev`)

## Build

### Configuration

- Install
```bash

```bash
git clone https://github.com/jkr11/MolSim.git
```
```

- manual build (I would recommend using make with -j $(nproc) as this is pretty slow)

```bash
mkdir build
cmake -S . -B build -<options>
cd build
make -j $(nproc)
```

- Testing:

```bash
cmake -S . -B build -DBUILD_TESTS=ON
```

To build with Intel's C++ compiler (```icx```/```icpx```), set the following options (currently this is on the [
`coolmuc_test`](https://github.com/jkr11/MolSim/tree/coolmuc_test) branch, but it works locally)

```bash
cmake -S . -B build -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx
```

for other compilers add the necessary compiler id to the options.

```bash
cd build/tests
make -j $(nproc)
ctest
```

Using the build script in `/script/`

- Build the project using the provided build script by using source, add `-t` to also build and run tests, add `-b` to
enable the BENCHMARK cmake macro
```bash
enable the BENCHMARK cmake macro and `-p` to enable OpenMP.

```bash
cd MolSim/scripts
source build <CMAKE_BUILD_TYPE= Release (default) | Debug | asan | asan-quiet> [-t|--test] [-b|--benchmark]
```
source build <CMAKE_BUILD_TYPE= Release (default) | Debug | asan | asan-quiet> [-t|--test] [-b|--benchmark] [-p|--parallel]
```

- Set the Input file by selecting the corresponding number during the script execution
```bash

```bash
source set-input
```
```

- Creating documentation when doxygen is installed (has to be executed in the specific `buildDir/<CMAKE_BUILD_TYPE>`)
```bash

```bash
(cd ../buildDir/<CMAKE_BUILD_TYPE> when starting from /scripts)
make doc_doxygen
```
```

- Running the program
```bash

```bash
$BUILD -f $INPUT <options>
```
```

- `$BUILD` contains the location of the last compiled executable
- `$INPUT` contains the location of the selected input file
- Please note that `$BUILD` and `$INPUT` are only available if the scripts are executed via source.

### Options
### CMake Options

```console
- ENABLE_BENCHMARK : enables benchmark mode with no printing of info and writing to files
- BUILD_TESTS : enables and builds the tests/ directory in the build directory
- ENABLE_OPENMP : enables OpenMP and support for multithreading
```

### Executable Options

```console
Options:
Expand All @@ -48,22 +106,62 @@ MolSim - Group A
[--step_size | -s <double>] Specify how often the output will be written wrt. time(step_size), default=1
Note that this is independent of the time resolution (t_delta) and dependent on the simulation time
[--loglevel | -l <level>] Specify the log level, default=info, valid=[off, error, warn, info, debug, trace]
[--checkpoint | -c ] Specifies if the final particle state will be saved to a checkpoint file.
[--checkpoint | -c <path>] Specifies the path the final state of the particles will be saved to.
Example usage:
$BUILD -f $INPUT -l <loglevel> -s <number>
```

- Output is located in `./output/<current_time>`
- Checkpoint is currently fixed to `checkpoint.xml` also in `./output/`
- Checkpoints as an input have to be explicitely stated in the input ```.xml``` file. In order to verify against the
checkpoint schema, all checkpoint files must point to the valid schema. As this location is hardcoded, all checkpoints
work out of the box if they are in the `/input/` directory. If they are somewhere else, you have to adjust the schema
path in the header of the checkpoint file.

- A quick example for checkpointing in Assignment 4 task 3: (in `build/src`)

```bash
./MolSim -f ../../input/week43checkpoint.xml -c ../../input/<name_of_your_choice.xml>
..... This eventually writes the checkpoint after running ----------
```

the add the following to week43.xml:

```xml

<checkpoint>
<name>../../input/
<name_of_your_choice.xml>
</name>
...
</checkpoint>
```

and run

```bash
./MolSim -f ../../input/week43.xml
```

- `--step_size` is relative to the passed simulation time and not the number of iterations
- `--loglevel debug` is only available if compiled with CMAKE_BUILD_TYPE=Debug
- all other options are specified in the .xml input file
- old inputs have been migrated to xml and support this pipeline

## Parallelization strategies

First, compile with `-DENABLE_OPENMP=ON` to support using OpenMP.

Then, use the xml tag `<use_c18_strategy>` in `<metadata>`, write true to use the c18 travesal, false to use the force
buffer
method or remove the thing entirely to use no parallelization at all (even if this is active). If OpenMP is not used,
this does nothing.

## LinkedCells vs DirectSum performance

### Running benchmark.py

Note this is a remnant from week 3 and 4, but this technically could be rewritten to test 5

For optimal performance run scripts/build with -b for benchmarking
The python script uses the generated executable in buildDir/Release/src for execution.
Ensure you have python 3.6 or later installed
Expand Down
Loading