Multiple issues on the github are related to deadline driven spaghettification and lack of general structure. This issue will give way to solving most of these issues (#7, #8, #12, #15, #16, #17, #18).
We propose the following structure:
src/
__init__.py
config/ # System-wide configuration files, such as constants or system paths.
__init__.py
constants.py
paths.py
threadripper00.json
lib/ # Library functions, such as the parallel C++ and GPU codes
__init__.py
cpp/
cpu/
cpu_seq/
gpu/
best/
include/
py/
helpers.py
debug-explore/ # Exploratory notebooks for testing out functionality / computations.
*.ipynb
processing_steps/ # cli scripts that can run automatically without user intervention, but will also generate reports of how each step went.
100-.py
200-
pybind/ # Directory for holding all of the pybind headers for C++.
*-pybind.cc
test/ # Directory for holding all of the automated benchmark scripts along with unit tests.
pybind-*.py
bigger-test(s).py
utils/ # Utility scripts. E.g. for new or old alternative processing steps.
io/
histograms/
alternative_processing_steps/
doitall.sh # Script for running all of the processing scripts in sequence.
The pipeline has been revived, which means that the new restructuring is (overall) complete. There might still be some cleanup in the files, but that's a more general problem.
Multiple issues on the github are related to deadline driven spaghettification and lack of general structure. This issue will give way to solving most of these issues (#7, #8, #12, #15, #16, #17, #18).
We propose the following structure: