-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ectrans benchmark with precision selected at runtime. #45
Conversation
… SP calls (instead of JPRB). Explicit type cast of JPRD to JPRB is added in gpnorm MIN/MAX calls to remove compilation warning of NVHPC
…tpm_pol commented out.
…rnal, introduce JPRC => JPRB type to annotate number constants in ./internal. This is because nvhpc preprocessor does not allow _JPRB macro.
…nd files with ectrans module and submodules, to allow for modern Fortran library imports. Currently modules only include legacy trans/external files for backward compatibility
…le-based, precision-dependent routines of trans
I am thinking perhaps it would be better to state MODULE SUBROUTINE rather MODULE PROCEDURE, since the interface needs to be repeated anyway inside of the external/*.F90 routines for backward compatibility. |
@wdeconinck shall we delete these PRs as I don't think they are being actively worked on anymore? |
You are right, it is probably worth to delete PRs except the last one, which should still hold an added value, even tough it is most probably significantly outdated. |
Even if the PR is closed, the work isn't lost, since we still have the branches :) I prefer to only keep PRs which have a realistic pathway towards merging. |
This draft PR aims at demonstration of the possible technical solution to the challenge of selecting precision of computations at runtime. In the current state, the proposed solution relies on the use of Ninja due to the preprocessing that affects module names at compile time. However, it seems ready for the first assessment.
Main code modifications are:
a) definition of the compiler-dependent suffixization macro
b) performs suffixization (e.g. with _sp or _dp) of all relevant symbols like module or standalone subroutine names, that would otherwise be duplicated if trans_sp and trans_dp are linked together
c) renames parkind1 to ec_parkind
d) replaces JPRB as JPRD or JPRM, depending on the version of trans library compiled at hand
The code compiles and runs with GNU, Intel and NVHPC on Atos. This draft PR will be shortly accompanied by another PR that demonstrates subsequent execution of the SP and DP versions of ectrans. For clarity, this PR has been stripped of the layer that enables that.