trilinos / ForTrilinos

ForTrilinos provides portable object-oriented Fortran interfaces to Trilinos C++ packages.
https://trilinos.github.io/ForTrilinos
BSD 3-Clause "New" or "Revised" License
25 stars 12 forks source link

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

Open aprokop opened 7 years ago

aprokop commented 7 years ago

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:

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

aprokop commented 7 years ago

@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?

maherou commented 7 years ago

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 commented 7 years ago

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.

aprokop commented 7 years ago

@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.

sethrj commented 7 years ago

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

kevans32 commented 7 years ago

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

youngmit commented 7 years ago

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.

maherou commented 7 years ago

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