This PR introduces some changes we tested in the PUMAS box model that will improve the robustness and GPU performance of PUMAS.
The details include:
Merge or break some loops to avoid potential race condition in a GPU run.
Restructure some codes and add async clause to execute different sedimentation calculations concurrently.
Push the column loops down in the implicit sedimentation calculation to improve the GPU performance.
Clean up unnecessary OpenACC directives to improve the readibility.
The changes of adding async clause is non-bit-for-bit on both CPU and GPU runs. But both of them pass the ensemble consistency test (I use cam6_3_057 for tests).
This PR introduces some changes we tested in the PUMAS box model that will improve the robustness and GPU performance of PUMAS.
The details include:
async
clause to execute different sedimentation calculations concurrently.The changes of adding
async
clause is non-bit-for-bit on both CPU and GPU runs. But both of them pass the ensemble consistency test (I usecam6_3_057
for tests).