HSAI Institute for Maneuverability and Terrain Physics
Simulations (IMTPS)
Software Engineering
Owen J. Eslinger, Ph.D.
8 Oct 2009
Development Team• Multiple Authors• Multiple Platforms (Mac/Linux/PC)• Multiple Compilers (Intel/PGI/GNU/…)
Development Team• Multiple Authors• Multiple Platforms (Mac/Linux/PC)• Multiple Compilers (Intel/PGI/GNU/…)
Third Party Applications(Lapack, UMFPACK, Parmetis …)
• May not be present on all platforms• May be different versions or in non-standard locations
Third Party Applications(Lapack, UMFPACK, Parmetis …)
• May not be present on all platforms• May be different versions or in non-standard locations
Modular Code• Toggle modules to streamline calculations• Alterations to code may affect other modules• Problem specific modules (heat / groundwater / … )
Modular Code• Toggle modules to streamline calculations• Alterations to code may affect other modules• Problem specific modules (heat / groundwater / … )
Revision Control - SVN
SVN - Countermine ADH Branch
How I came to love the bomb, or why Stacy shouldn’t be beaten regularly
CMake
Developed by Kitware, Inc.
Portable: Unix, Windows, etc.
Language Support:C, C++, Fortran
Comparable to:Scons - Pthon Build System
Easily add package support with modules
Auto-detect system configuration
Wiki
Started: Number of Pages:Number of Edits:Number of Users:User with Most Edits (Number):Total Current Lines:Pages with Edits in Last Quarter:
http://134.164.168.8/wiki/index.php/Main_Page
(internal ERDC only)
CTest - Nightly Testing
Straightforward Test Problems
• Designed to test basic functionality
• Mesh Refinement Studies on Basic Geometries
• Test Boundary Condition Implementation
CTest - Nightly Testing
Test 6-10
Test 11-13Test 14-16
Test 3-5
CTest - Test 6
Test 6aU=x Test 6b
U=z
Test 6cU=y
Test 6dU=1-z
CTest – Test 7
Test 7a*MISSING* Test 7b
U=z
Test 7cU=y
Test 7dU=x
CDash - Dashboard
• Display Nightly, Experimental, Continuous Builds• We Perform Nightly Testing
Dashboard, Failure Modes
Test ResultsTest Results
Tests Uploaded to Central Repository• Performed on multiple machines• Test various compilers and modules• Easy for all contributors to monitor
Tests Uploaded to Central Repository• Performed on multiple machines• Test various compilers and modules• Easy for all contributors to monitor
Tests Performed Nightly• Clearly display Pass/Fail Statistics• Facilitates Maintenance across multiple developers
Tests Performed Nightly• Clearly display Pass/Fail Statistics• Facilitates Maintenance across multiple developers
<<Include CDASH Image Once we have more green than red>>
Development Team• Multiple Authors• Multiple Platforms (Mac/Linux/PC)• Multiple Compilers (Intel/PGI/GNU/…)
Development Team• Multiple Authors• Multiple Platforms (Mac/Linux/PC)• Multiple Compilers (Intel/PGI/GNU/…)
Third Party Applications(Lapack, UMFPACK, Parmetis …)
• May not be present on all platforms• May be different versions or in non-standard locations
Third Party Applications(Lapack, UMFPACK, Parmetis …)
• May not be present on all platforms• May be different versions or in non-standard locations
Modular Code• Toggle modules to streamline calculations• Alterations to code may affect other modules• Problem specific modules (heat / groundwater / … )
Modular Code• Toggle modules to streamline calculations• Alterations to code may affect other modules• Problem specific modules (heat / groundwater / … )
Complex Development EnvironmentComplex Development Environment
Owen J. Eslinger
Information Technology Laboratory (ITL)US Army Engineer Research and Development Center (ERDC)
US Army Corps of Engineers (USACE)