<div dir="ltr">Dear Fabian,<div><br></div><div>thanks a lot for checking and for pinning down the issue.</div><div><br></div><div>Since this is a rather serious issue, my first instinct was to check on the performance page of cp2k to see whether CUDA + OMP was ever used in benchmark studies.</div><div><a href="https://www.cp2k.org/performance">https://www.cp2k.org/performance</a></div><div><br></div><div>Unfortunately, it is not clear to me from the page - something I now remember to have run in before:</div><div>E.g. for some systems it says explicitly "no GPU" but for others that can have a GPU (like Cray XC40) it does not say it and it is not clear whether this means the GPU was used or not.</div><div>May I suggest to the maintainer of this page to make this information explicit?</div><div><br></div><div>And if it turns out that there are currently no tests including the CUDA version on the list, perhaps it would make sense to include some?</div><div><br></div><div>Best wishes from Bern,</div><div>Leopold</div><div><br></div><div><br></div><div><br><br>On Monday, 4 May 2020 17:35:08 UTC+2, Fabian Ducry  wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr"><div>Dear Andres,</div><div><br></div><div>I can confirm and reproduce the issue. Apparently it appears when combining CUDA + OMP in hybrid calculations. In that case the energy becomes a function of #OMP threads per rank. For your input I got (cp2k 8.0, revision 3e7b916, run on Piz Daint)</div><div></div><div>                              <wbr>                                  no cuda                      OMP_NUM_THREADS = 1           OMP_NUM_THREADS = 3          OMP_NUM_THREADS = 6<br>  Exchange-correlation energy:          -433.84964308969535               -433.84964308969302                -435.33426106395467           <wbr>       -435.96513615032325<br>  Hartree-Fock Exchange energy:      -127.87395928499694                -127.87395928499325                -125.97109874333140           <wbr>       -125.24809389970088<br>  Total energy:                       <wbr>         -1976.39722899739672               -1976.39722899739013              -1975.95046919253809          <wbr>       -1975.87080541858177</div><div><br></div><div>Without OMP parallelization the energies agrees with the calculation without CUDA accelleration. Increasing OMP_NUM_THREADS beyond 1 increases the Hartree-Fock Exchange energy.</div><div>Apparently you have to disable OMP to obtain correct results. This is obviously not very satisfying and I hope this gets fixed. I see that you used 1 MPI/12 OMP ranks per node. Try increasing the number of MPI ranks per node. To do so you have to set <br></div><div>export CRAY_CUDA_MPS=1 in the submission script.<br></div><div><br></div><div>I hope this helps.</div><div><br></div><div>Best,</div><div>Fabian<br></div></div></blockquote></div></div>