E3SM-Project / HOMMEXX

Clone of ACME for CMDV-SE project to convert HOMME to C++
11 stars 0 forks source link

Diagnostics support #316

Closed bartgol closed 6 years ago

bartgol commented 6 years ago

This PR enables diagnostics support in hommexx.

The diagnostics are computed on host, and the results stuffed directly in the stored F90 pointers. This can obviously be improved if need be.

bartgol commented 6 years ago

Tests pass on SKX, still need to check GPU/KNL and performance.

mfdeakin-sandia commented 6 years ago

I'll vote for the mathematically true tests

ambrad commented 6 years ago

Could also just call the two Fortran functions instead of rewriting them in C++, thus assuring correctness up to the call sites. This is not intended to be performant device code; the diagnostics do a bunch of reductions extremely inefficiently. So C++ is not necessary here.

bartgol commented 6 years ago

Making it in C++ was not for efficiency reasons (it is serial, after all), but for interface ease. Keeping Fortran diagnostics forces to keep calling Fortran routines, which makes the interface cumbersome.

I will work on the test, and I will bring back the calculation of Q on device.

mfdeakin-sandia commented 6 years ago

@bartgol FYI, this can't be merged with master until the histories match