Results of the numerical study in "Performance and accuracy of the basic closure algorithm of quadrature-based moment methods"

Published: 11 September 2023| Version 1 | DOI: 10.17632/mnvbkxts7t.1
Contributors:
Michele Pütz,

Description

The provided data corresponds to the results presented in the paper "Performance and accuracy of the basic closure algorithm of quadrature-based moment methods", submitted to the Journal of Computational Physics on May 2nd, 2023. It is concerned with the exploration of the performance and accuracy of the core algorithm of quadrature-based moment methods. This repository includes four directories: The directory "Input_data" containing the input data used for the numerical investigations, i.e. the test set of moment sequences as well as the reference quantities used in the paper, and three directories, of which the names correspond to the three subsections of the results section, containing the respective data presented therein. Information on the used hardware and compilers can be found in the Section 3. The tools to generate the results are available in the following repositories: - https://github.com/puetzmi/Qbmm-Profiling-Tools (repository 1): The C++ source code to build the main applications. - https://github.com/puetzmi/Qbmm-Profiling-Study (repository 2): The Python/bash scripts to generate the input/reference data as well as the numerical configurations used to run the applications. The above-mentioned source code is also included as a submodule. - https://github.com/puetzmi/QuadMomPy (repository 3): The Python library QuadMomPy, which is used by scripts in the repository above to generate the input/reference data. For explanations of the contents of this repository, see the 'README.txt', which is included in each of the directories in this repository. The mentioned application names refer to the executable files built from the code in repository 1.

Files

Steps to reproduce

Naturally, the results in terms of computation times cannot be exactly reproduced due to the dependence on hardware (information on the hardware used to generate the results can be found in the paper, Section 3.5), although similar hardware / computer architectures should lead to similar results. The rest of the output data is reproducible. The steps to achieve that are described below. The repository numbers correspond to those in the description above, i.e. - repository 1: https://github.com/puetzmi/Qbmm-Profiling-Tools - repository 2: https://github.com/puetzmi/Qbmm-Profiling-Study - repository 3: https://github.com/puetzmi/QuadMomPy 1. Install the Python library QuadMomPy by following the instructions in repository 3. 2. Clone repository 2, including submodules to get also the contents of repository 1. 3. Create the build directory in '{ROOT_DIRECTORY_OF_REPOSITORY_1}/build/{COMPILER}-release', where 'COMPILER' is one of 'intel' or 'gnu', and build the code there by following the instructions in the provided README file in repository 1. 4. Change directory to '{ROOT_DIRECTORY_OF_REPOSITORY_2}/numerical_study' and execute 'generate_data.sh' to generate the input data used for the study. The files in the created 'data' directory should have the same contents as the files in the 'Input_data' directory of this data repository, as pseudo-random number generators with fixed seed are used. 5. Change to the directory corresponding to the investigation that is supposed be carried out (given in the 'README.TXT' files in the respective directory of this repository). 6. Run the 'run_all_parallel.sh' script with the command line parameters: - number of cores you want to use - the range with respect to the number of moments (- additional parameters), e.g. running the command '../run_all_parallel.sh 1 6:16' in the directory '{ROOT_DIRECTORY_OF_REPOSITORY_1}/numerical_study/1.1_core_inversion_benchmark/intel_np1' (assuming the Intel compiler was used) executes the application 'qmom_core_inversion' using a single core and moment sequences with lengths 6 to 16. 7. If everything has been built/generated and executed correctly, wait and obtain results. For a rough estimation of the total execution duration, look into the data files provided in the corresponding directory of this repository, which contain the start and end time of the execution in the first and last line, respectively.

Institutions

Brandenburgische Technische Universitat Cottbus-Senftenberg

Categories

Computational Mathematics, Computational Physics, Numerical Algorithm, Gaussian Quadrature, Eigenvalue Problems

Licence