# Presentation: 009858

## Trilinos Framework: Next StepsPart IILed Discussion

- Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,for the United States Department of Energy under contract DE-AC04-94AL85000.

**Notes:**
Questions from audience

Can you use another matrix-vector multiply?
Are multivectors supported?
Are Petsc and Hypre available via TSF?
How does Trilinos differ from Petsc?

## Outline of Discussion

- Funding:
- ASC & Level 2 milestone.
- TOPS-2, Boeing, XOM, MICS.
- Others.
- Factoring of Skins.
- Incidental coupling issues.
- Thyra: OLE model?
- Documentation.
- SQA next-steps brainstorming.
- Major themes for FY07/08.
- Other Critical Issues?

## Funding

- ASC & Level 2 milestone.
- TOPS-2, Boeing, XOM.
- LDRD, CSRF, MICS, Others?

## Skins

- Past:
- 2 skins: Thyra, Python
- Hope that package teams take ownership for adapters.
- Present/Future:
- 5 skins: Thyra, Python, Web, Fortran, Star-P.
- Package teams do not generally own adapter for 2 skins.
- Expectation to own 5 unrealistic.
- Staff complexity: Dependence on Bill/Ross/Marzio/??/ISC.
- Proposal: Refactor adapters
- Move adapters out of algorithms packages.
- Put where?
- In trilinos/packages/thyra, trilinos/packages/thyraAdapters ?
- Note: NewPackage becomes algorithms-focused again.
- Discussion.

## Package Architecture Scalability

- Impression:  Too much incidental coupling across packages.
- Higher level package forcing broad scope build of low level packages.
- Example: Some examples/tests require many packages to be built(when library build does not).
- How can we practically avoid?
- Goal: Avoid surprises in incidental coupling.
- Errors when --enabling/--disabling other packages.
- Forced enabling of low-level package to access high-level package(unless explicit dependence exists).
- Discussion.

## User Visibility of Thyra

- Background:
- Thyra and Teuchos are critical for scalability.
- Question: Is it wrong to promote Thyra to (average) users?
- Gives the impression they need to know it.
- Scares many of them.
- OK for advanced users, e.g., for composed operators.
- Different emphasis: OLE? TOLE?
- Follow Object Linking and Embedding (OLE) approach?
- “It just works.”
- Addresses some concerns about complexity: doc, interfaces.
- Allows sample package:	Trilinos/packages/thyra/thyraNewPackage example.
- Discussion.

## Documentation

- Issues:
- Lots of documentation.
- Still not enough.
- Presentation.
- Maintenance challenge.
- Opinion:
- Must continue to improve.
- Can never really satisfy.
- Ideas for specific improvements?

## Tom Brunner’s Issues

- Documentation
- Needs to keep pace with package development
- Sometimes Doxygen reference isn’t useful at all
- The transition from research to production code isn’t always smooth or complete
- Missing features or generalization
- Buggy code
- Add pronunciation guide and maybe even an audio file for each package name

## Brunner on Documentation

- Currently most Doxygen main pages have very short descriptions of the package.
- “Meros is a segregated preconditioning package. Provides scalable block preconditioning for problems thatcoupled simultaneous solution variables such as Navier-Strokes *[sic] *problems.”
- ~Or very, very long, like Thyra
- It would be good to have a somewhat longer overview of each package that describes What the package does
- No (or a very few) class names
- What packages use or are used by other
- Production readiness, future plans, genealogy, etc.

## Brunner on Bad

- Learning all the Greek names is hard.
- There is either a lot of documentation, or very nearly no documentation for packages.
- One claim of good development model is also a weakness. Developers tend to make packages work for their problem, they sound useful for others, but the (seemingly minor) generalization needed isn’t there.
- Pace of development and introduction of new packages is almost dizzying for a mere user. Sometimes it seems like productization of packages is neglected in favor of new features.

## SQA/E Next Steps

- Goal: Pick a few things we can practically adopt:
- Actually improves our effectiveness.
- Developers will actually do.
- Satisfies formal SQA/SQE goals.
- Some ideas:
- Code reviews.
- Coverage, performance, other metrics.
- Increased formality for commits.
- Others?

## FY07/08 Themes: Framework

- Trilinos Level II Milestone.
- Demonstrate Use of Full Vertical capabilities in Charon.
- Joint licensing and copyright of development with other organizations.
- Other DOE Labs, international orgs, private companies.
- Package Autonomy (reacting to rapid growth):
- 18  27  ??
- Guarding against incidental coupling.
- Revisiting the location of “skins”.
- Stratimikos: Uniform access to many packages.
- Access from Fortran.
- DOE Science Users, DOD Users.
- Stratimikos focus.
- Split of User vs Developer tools.
- http://trilinos.sandia.gov
- http://software.sandia.gov

## Other ideas (for strategic planning discussion)?

- V&V ideas from Tim’s talk.