cig_logo.png

Developer Resources

CIG supports the use of best software practices and the usage of modern software tools to craft and maintain usable, robust code. In support of this goal, CIG utilizes and promotes such practices in its day-to-day operations and user community.  

The following material has been contributed by the community as a resource to developers.

General Programming

[html] Course overview; why consider existing software libraries W. Bangerth*
[html] Beyond computational methods — Part 1: Workflows in scientific computing W. Bangerth*
[html] Beyond computational methods — Part 2: Issues with developing large software W. Bangerth*
[arXiv] Programming Languages for Scientific Computing (2012) M. Knepley
[arXiv] Run-time extensibility and librarization of simulation software (2014) J. Brown, et al.
[YouTube] Distributed Version Control and Continuous Integration Testing (2016) J. Johnson
[YouTube] Testing and Documenting Your Code (2016) A. Klinvex
[YouTube] An Introduction to High-Performance Parallel I/O (2016) F. Wang
[YouTube] Basic Performance Analysis and Optimization (2016) J. Deslippe
[arXiv] Good Enough Practices in Scientific Computing (2016) G. Wilson, et al.
[html] ESIP Software Guidelines (2016) S. Scott, ed.

Software Tools

[html] Learning to use modern tools, part 1 – Eclipse: an Integrated Development Environment (IDE), fragment 1 W. Bangerth*
[html] Learning to use modern tools, part 1 – Eclipse: an Integrated Development Environment (IDE), fragment 2 W. Bangerth*
[html] Best programming practices: Defensive programming and other ways to avoid bugs W. Bangerth*
[html] More on debugging using Eclipse's built-in debugger W. Bangerth*
[html] Learning to use modern tools, part 3 – doxygen: a documentation tool W. Bangerth* 
[html] Learning to use modern tools, part 4 – Paraview, an alternative visualization tool W. Bangerth*
[html]  Learning to use modern tools, part 5a: Version control systems (VCSs), Subversion W. Bangerth*

Other Resources

Software Carpentry

Codecademy

XSEDE Training

Oak Ridge Leadership Computing Facility [tutorials]

2014 Argonne National Lab Extreme Scale Computing Program (YouTube)

2016 ORNL/ORLCF Webinar Series: Best Practices for HPC Software Developers [web]

Publications

What makes computational open source software libraries successful?  Wolfgang Bangerth and Timo Heister (2013), Comput. Sci. Disc. 6 015010 doi:10.1088/1749-4699/6/1/015010


 
*Lecture material contributed by Professor Wolfgang Bangerth and videotaped as part of TAMU MATH 676: Finite element methods in scientific computing  For a full list of videotaped lectures visit his course website.
Sign In