You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is the compile time seleciton mechanism for the precision in the code base, however the MPI modules are currently hardcoded for MPI_DOUBLE_PRECISION. We need to figure out a way to fix this so that we can run single precision simulations.
A very incomplete attemt is here (albeit the wrong place, it should be in base backend)
Then based on the dp parameter MPI_FP_PREC can be set and used everywhere afterwards. This probably will require converting mpi_sendrecv modules into classes, so that they can be instantiated at the backends with the MPI_FP_PREC
This is not the correct way to do it - dp = kind(0.0d0) (or something similar) will be compiler-specific, and not necessarily aligned with the MPI library. Something equivalent to
it might also be worth looking into MPI_F08 - this is a better module than the default MPI one, however it isn't very well supported and tends to break tools so I haven't really used it... But it is a bit better on the type safety side of things.
There is the compile time seleciton mechanism for the precision in the code base, however the MPI modules are currently hardcoded for
MPI_DOUBLE_PRECISION
. We need to figure out a way to fix this so that we can run single precision simulations.A very incomplete attemt is here (albeit the wrong place, it should be in base backend)
x3d2/src/cuda/backend.f90
Line 26 in 85246f3
Then based on the
dp
parameterMPI_FP_PREC
can be set and used everywhere afterwards. This probably will require convertingmpi_sendrecv
modules into classes, so that they can be instantiated at the backends with theMPI_FP_PREC
Thanks @JamieJQuinn for pointing out this in #67.
The text was updated successfully, but these errors were encountered: