Best Practices for Scientific Computing
arXiv:1210.0530 · doi:10.1371/journal.pbio.1001745
Abstract
Scientists spend an increasing amount of time building and using software. However, most scientists are never taught how to do this efficiently. As a result, many are unaware of tools and practices that would allow them to write more reliable and maintainable code with less effort. We describe a set of best practices for scientific software development that have solid foundations in research and experience, and that improve scientists' productivity and the reliability of their software.
18 pages
References in corpus (1)
Cited by in corpus (57)
- Tackling Exascale Software Challenges in Molecular Dynamics Simulations with GROMACS
- MOOSE: Enabling Massively Parallel Multiphysics Simulation
- VIP: Vortex Image Processing package for high-contrast direct imaging
- Switch 2.0: A Modern Platform for Planning High-Renewable Power Systems
- Sustainable computational science: the ReScience initiative
- Ten Simple Rules for Making Research Software More Robust
- lifex: a flexible, high performance library for the numerical solution of complex finite element problems
- Eilmer: an Open-Source Multi-Physics Hypersonic Flow Solver
- libcloudph++ 0.2: single-moment bulk, double-moment bulk, and particle-based warm-rain microphysics library in C++
- A survey of biodiversity informatics: Concepts, practices, and challenges
- Principles for data analysis workflows
- Data Science vs. Statistics: Two Cultures?
- Best Practices for Replicability, Reproducibility and Reusability of Computer-Based Experiments Exemplified by Model Reduction Software
- An Environment for Sustainable Research Software in Germany and Beyond: Current State, Open Challenges, and Call for Action
- ss3sim: An R package for fisheries stock assessment simulation with Stock Synthesis
- Reproducibility, Replicability, and Repeatability: A survey of reproducible research with a focus on high performance computing
- The Types, Roles, and Practices of Documentation in Data Analytics Open Source Software Libraries: A Collaborative Ethnography of Documentation Work
- PCMSolver: an Open-Source Library for Solvation Modeling
- 3D electromagnetic modelling and inversion: A case for open-source
- ChemKED: a human- and machine-readable data standard for chemical kinetics experiments
- Efficient and portable acceleration of quantum chemical many-body methods in mixed floating point precision using OpenACC compiler directives
- GPU Computing with Python: Performance, Energy Efficiency and Usability
- Teaching computational reproducibility for neuroimaging
- The challenge and promise of software citation for credit, identification, discovery, and reuse
- bertha: Project Skeleton for Scientific Software
- automan: a simple, Python-based, automation framework for numerical computing
- USID and Pycroscopy -- Open frameworks for storing and analyzing spectroscopic and imaging data
- On the evaluation of research software: the CDUR procedure
- Evolution Reinforces Cooperation with the Emergence of Self-Recognition Mechanisms: an empirical study of the Moran process for the iterated Prisoner's dilemma
- Fostering better coding practices for data scientists
- How Scientists Use Large Language Models to Program
- Report on the Fourth Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE4)
- Challenges for Verifying and Validating Scientific Software in Computational Materials Science
- Computational Experiment Design for Operations Model Simulation
- Good modelling software practices
- Archiving Software Surrogates on the Web for Future Reference
- RMPCDMD: Simulations of colloids with coarse-grained hydrodynamics, chemical reactions and external fields
- contact.engineering -- Create, analyze and publish digital surface twins from topography measurements across many scales
- Requirements Engineering for Research Software: A Vision
- pySPT: a package dedicated to the source position transformation
- Teaching Programming for Mathematical Scientists
- Truth, Proof, and Reproducibility: There's no counter-attack for the codeless
- Computational and informatics advances for reproducible data analysis in neuroimaging
- I'm stuck! How to efficiently debug computational solid mechanics models so you can enjoy the beauty of simulations
- Architecting Complex, Long-Lived Scientific Software
- Reproducibility as a Technical Specification
- Ten Recommendations for Engineering Research Software in Energy Research
- Reusability in Science: From Initial User Engagement to Dissemination of Results
- Change Management and Version Control of Scientific Applications
- Bring out your codes! Bring out your codes! (Increasing Software Visibility and Re-use)
- PyPartMC: A Pythonic interface to a particle-resolved, Monte Carlo aerosol simulation framework
- TurboPy: A Lightweight Python Framework for Computational Physics
- A Compositional Framework for Scientific Model Augmentation
- Exchanging Best Practices and Tools for Supporting Computational and Data-Intensive Research, The Xpert Network
- \texttt{code::proof}: Prepare for \emph{most} weather conditions
- SofaMyRoom: a fast and multiplatform "shoebox" room simulator for binaural room impulse response dataset generation
- Ten Simple Rules for AI-Assisted Coding in Science