... | ... | @@ -4,7 +4,7 @@ The priorities for W-SLDA Toolkit developers are as follows (from highest to low |
|
|
2. Performace.
|
|
|
3. User-friendly interface.
|
|
|
|
|
|
The highest priority is computation correctness, which is the fundamental issue in computational physics.
|
|
|
The highest priority is computation correctness, which is the fundamental issue in computational physics. The next one is performance, which points to programming techniques used for constructing the computational engine (it is written using C+CUDA+MPI).
|
|
|
|
|
|
# W-SLDA Toolkit quality
|
|
|
|
... | ... | @@ -13,7 +13,7 @@ Within W-SLDA Toolkit, we apply the following strategies to ensure a high level |
|
|
## Level 1: Inspection of the results
|
|
|
It is the most standard method (and in many groups, the only one). Namely,<br>
|
|
|
_results are correct if they look to be correct_.<br>
|
|
|
While it may look to be rather a weak method of testing computation correctness, in practice, it works very well. Typically, we know what to expect as the results (more or less), at least at the level of qualitative behavior. Physics is equipped with various methods, experiments, etc., and making extensive comparisons with them leads to the identification of discrepancies (if present). From the point of view of the implementation, the W-SLDA Toolkit delivers extensive support for results analysis.
|
|
|
While it may look like a weak method of testing computation correctness, it works very well in practice. Typically, we know what to expect as the results (more or less), at least at the level of qualitative behavior. Physics is equipped with various methods, experiments, etc., and making extensive comparisons with them leads to identifying discrepancies (if present). From the implementation point of view, the W-SLDA Toolkit delivers extensive support for results analysis.
|
|
|
|
|
|
Actions taken within the W-SLDA Toolkit to support the level 1 quality checks:
|
|
|
* [W-data format](https://gitlab.fizyka.pw.edu.pl/wtools/wdata): conceptually easy data format that allows a variety of tools/languages to be used for data analysis.
|
... | ... | @@ -22,12 +22,13 @@ Actions taken within the W-SLDA Toolkit to support the level 1 quality checks: |
|
|
|
|
|
## Level 2: Internal tests
|
|
|
|
|
|
While Level 1 actions are sufficient to detect most of the errors in results at the qualitative level, they are not sufficient to assure the correctness of the code computation at the quantitative level. The next level of testing is<br>
|
|
|
_checking the correctness of the computation for cases where solutions are known_.<br>
|
|
|
While Level 1 actions are sufficient to detect most of the errors in results at the qualitative level, they are not sufficient to assure the correctness of the code computation at the quantitative level. [Lubarsky's Law](https://en.wikipedia.org/wiki/Software) says<br>
|
|
|
_every program has at least one more bug_, <br>
|
|
|
thus, testing is an endless process that must be executed routinely.
|
|
|
Developers of the W-SLDA Toolkit constantly seek cases that can be used as test cases.
|
|
|
|
|
|
Actions taken within the W-SLDA Toolkit to support the level 2 quality checks:
|
|
|
* [Testsuite](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/Testsuite): an automated system of executing test cases that checks the correctness of computation at the quantitative level. The automatic tests are executed routinely after each new commit to the main engine of the code.
|
|
|
* [Testsuite](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/Testsuite): an automated system of executing test cases that checks the correctness of computation at the quantitative level. The automatic tests are executed routinely after each new commit to the main engine of the code. Presently, more than 300 test cases are implemented.
|
|
|
|
|
|
## Level 3: Open-source & Transparency
|
|
|
The review process by external researchers is a crucial aspect of science. It is standard practice in the case of scientific publication. In the context of scientific codes, it is less popular since it requires you to make your code available to others. However, we also observe that open-source/access movement gets stronger with time in computational physics. It is the next-level method that supports the implementation of high-quality code. It steams from Linus's law:<br>
|
... | ... | |