Software Life-cycle and Integration Issues for CS&E R&D Software and Experiences from Trilinos (Part I)
Roscoe A. Bartlett
Department of Optimization & Uncertainty Estimation
Trilinos Software Engineering Technologies and Integration Lead

Sandia National Laboratories

SIAM Parallel Processing 2010, 2/24/2010
Overview of CS&E Software Engineering Challenge
Overview of Trilinos
Evolving Trilinos Solution
Trilinos1 is an evolving framework to address these challenges:
Follow a TOOLKIT approach.
Fundamental atomic unit is a package.
Includes core set of vector, graph and matrix classes (Epetra/Tpetra packages).
Provides a common abstract solver API (Thyra package).
Provides a ready-made package infrastructure:
Source code management (git [New]).
Build tools (CMake [New]).
Automated regression testing (CTest/CDash [New]).
Communication tools (Mailman mail lists).
Specifies requirements and suggested practices for package SQA.
In general allows us to categorize efforts:
Efforts best done at the Trilinos framework level (useful to most or all packages).
Efforts best done at a package level (peculiar or important to a package).
Allows package developers to focus only on things that are unique to their package.
Trilinos Package Summary
Trilinos Strategic Goals
Scalable Computations: As problem size and processor counts increase, the cost of the computation will remain nearly fixed.  

Hardened Computations: Never fail unless problem essentially intractable, in which case we diagnose and inform the user why the problem fails and provide a reliable measure of error.

Full Vertical Coverage: Provide leading edge enabling technologies through the entire technical application software stack: from problem construction, solution, analysis and optimization.

Grand Universal Interoperability: All Trilinos packages will be interoperable, so that any combination of solver packages that makes sense algorithmically will be possible within Trilinos. 

Universal Accessibility: All Trilinos capabilities will be available to users of major computing environments: C++, Fortran, Python and the Web, and from the desktop to the latest scalable systems.

Universal Solver RAS: Trilinos will be:
Reliable: Leading edge hardened, scalable solutions for each of these applications
Available: Integrated into every major application at Sandia
Serviceable: Easy to maintain and upgrade within the application environment.
Automatic Intra-Package Dependency Handling
CS&E Environment at Sandia National Labs for Trilinos
Vision for a Confederation of CS&E Software?
The Vision: A Confederation of CS&E Codes?
Challenges for the Reuse of External CSE Software
Many CS&E organizations and individuals are adverse to using externally developed CS&E software!

Using externally developed software can be as risk!
External software can be hard to learn
External software may not do what you need
Upgrades of external software can be risky:
Breaks in backward compatibility?
Regressions in capability?
External software may not be well supported
External software may not be support over long term

What can reduce the risk of depending on external software?
Develop and maintain strong organizational relationships
Long term commitment and support (i.e. 10-30 years)
Apply strong software engineering processes and practices (high quality, low defects, frequent releases, regulated backward compatibility)

Overview of Modern Lean/Agile Software Engineering
Defined: Life-Cycle, Agile and Lean
Relevant Lean/Agile Software Engineering Principles
Lean/Agile Methods: Development Stability
Lean/Agile Methods: Development Stability
Realizing a Confederation of CS&E Software
The Vision: A Confederation of CS&E Codes?
Requirements/Challenges for Confederation of CS&E Codes
Regulated Backward Compatibility
Backward Compatibility Considerations
Example of the Need for Backward Compatibility
Backward Compatibility Considerations
Regulated Backward Compatibility in Trilinos
CS&E Software Engineering Challenge
Requirements/Challenges for Confederation of CS&E Codes

Categories: News