Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • wslda wslda
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wtools
  • wsldawslda
  • Wiki
  • Code & Results quality

Last edited by Gabriel Wlazłowski Feb 27, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Code & Results quality

Introduction

The priorities for W-SLDA Toolkit developers are as follows (from highest to lowest):

  1. Correctness of computation.
  2. Performace.
  3. User-friendly interface.

The highest priority is computation correctness, which is the fundamental issue in computational physics.

W-SLDA Toolkit quality

Within W-SLDA Toolkit, we apply the following strategies to ensure a high level of confidence in the computation correctness:

Level 1: Inspection of the results

It is the most standard method (and in many groups, the only one). Namely,
   results are correct if they look to be correct.
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.

Actions taken within the W-SLDA Toolkit to support the level 1 quality checks:

  • W-data format: conceptually easy data format that allows a variety of tools/languages to be used for data analysis.
  • Integration with VisIt: advanced platform for data visualisation & analysis.
  • Auxiliary tools & Extensions: we provide various examples of tested codes for data analysis.

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
   checking the correctness of the computation for cases where solutions are known.
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: 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.

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:
   given enough eyeballs, all bugs are shallow.

Actions taken within the W-SLDA Toolkit to support the level 3 quality checks:

  • The W-SLDA Toolkit is open-source code.
  • Results reproducibility: Together with publications, we deliver reproducibility packs. Using them, a researcher may inspect the computation process from beginning to end. For example, see arXiv:2201.07626.

Links to interesting articles related to code & results quality

  • Does your code stand up to scrutiny?
  • David A. W. Soergel, Rampant software errors may undermine scientific results
  • Zeeya Merali, Computational science: ...Error
  • Jeffrey M. Perkel, How to fix your scientific coding errors
Clone repository
  • API version
  • Automatic interpolations
  • Auxiliary tools
  • Browsing the code
  • Broyden algorithm
  • C and CUDA
  • Campaign of calculations
  • Checking correctness of settings
  • Chemical potentials control
  • Code & Results quality
  • Common failures of static codes
  • Common failures of time dependent codes
  • Computation domain
  • Configuring GPU machine
  • Constraining densities and potentials
View All Pages