ForTrilinos icon indicating copy to clipboard operation
ForTrilinos copied to clipboard

Decide on a set of mini-apps to test ForTrilinos functionality

Open aprokop opened this issue 7 years ago • 8 comments

It is a good idea to have a set of different mini-codes (whatever we call them, proxy apps/mini-apps/micro-apps/examples) to test the functionality without requiring a full-blown codebase (like CAM/VERA/etc).

We can probably take some of the already written C++ mini-apps and convert them to Fortran. Some ideas:

  • Tpetra tutorial examples
  • Other examples in Trilinos (maybe Ifpack2? Belos?)
  • Mini-app based on VERA Take output matrices from VERA to create a mini app of the eigenvalue solver. They have this already in C to test the trilinos solver before putting into VERA. The dumped matrix is available.
  • Shallow water matrix from CAM to use for linear and nonlinear solver, IOC or use C++ examples from Albany CISM and CAM to compare kernels
  • HPCG

Goal: unit testing and to look at performance of mini-app with Trilinos versus Fortrilinos example.

aprokop avatar Feb 25 '17 21:02 aprokop

@maherou I'd like to hear your take on this. Do you think mini-apps is a good idea in this context? If yes, do you have more ideas about them?

aprokop avatar Feb 25 '17 21:02 aprokop

I think mini-drivers (the Mantevo term for this kind of proxy, a mini-driver is a main program that mimics an application's use of a library) are essential for long-term sustainability. We want to be careful to have only as many as we need, and develop them as the needs evolve. As mentioned before, it would be good to point other community members to these drivers, to make sure they find the API natural.

maherou avatar Feb 26 '17 15:02 maherou

Also, it would be worth producing a LaTeX document that describes the APIs and assumptions. We have done this a couple of times with other projects and, while it seems like it could slow down progress, it in fact helps clarify the design prior to writing code and saves time to completion. Also, the document serves as a useful artifact in the long run.

maherou avatar Feb 26 '17 15:02 maherou

@maherou Could you please point to an example of the mentioned LaTeX document? I'm certainly not against thinking ahead before spending a lot of time implementing.

aprokop avatar Feb 26 '17 16:02 aprokop

I know we're targeted at exascale codes, but how much trouble would it be to make the examples work with MPI disabled?

sethrj avatar Feb 27 '17 18:02 sethrj

actually that is probably good to have anyway, both for testing and the relative growth of nodes

kevans32 avatar Feb 27 '17 18:02 kevans32

We talked about this a couple of weeks ago, but the MPACT CMFD solver would be a good candidate for one of these mini-apps. We are essentially solving a generalized eigenvalue problem with Anasazi. As a first step, I can dump the LHS and RHS matrices from a representative problem and use the simplified wrappers to solve it.

youngmit avatar Feb 27 '17 21:02 youngmit

Yes, sans MPI is important. Even in a Exascale environment, it is reasonable to ask for solvers to work underneath a single MPI process.

maherou avatar Mar 01 '17 14:03 maherou