<div dir="ltr">Hello,<div><br></div><div>Two days ago, I opened a PR to the simfactory repo to add Expanse, </div><div>the newest machine at the San Diego Supercomputing Center, based on</div><div>AMD Epyc &quot;Rome&quot; CPUs and part of XSEDE. In the meantime, I realized</div><div>that some tests are failing miserably, but I couldn&#39;t figure out why. </div><div><br></div><div>Before I describe what I found, let me start with a side node on AMD</div><div>compilers.</div><div><br></div><div>&lt;side node&gt;</div><div><br></div><div>There are four compilers available on Expanse: GNU, Intel, AMD, and PGI. </div><div>I did not touch the PGI compilers. I briefly tried (and failed) to compile with </div><div>the AMD compilers (aocc and flang). I did not try hard, and it seems that </div><div>most of the libraries on Expanse are compiled with gcc anyways. </div><div><br></div><div>A first step to support these compilers is adding the lines:</div><div><br></div><div>   elif test &quot;`$F90 --version 2&gt;&amp;1 | grep AMD`&quot; ; then<br>     LINUX_F90_COMP=AMD<br>   else<br></div><div><br></div><div> elif test &quot;`$CC --version 2&gt;&amp;1 | grep AMD`&quot; ; then<br>   LINUX_C_COMP=AMD<br> fi<br></div><div><br></div><div> elif test &quot;`$CC --version 2&gt;&amp;1 | grep AMD`&quot; ; then<br>   LINUX_CXX_COMP=AMD<br> fi<br></div><div><br></div><div>in the obvious places in flesh/lib/make/known-architecture/linux.</div><div><br></div><div>&lt;/side node&gt;</div><div><br></div><div>I successfully compiled the Einstein Toolkit with </div><div>- gcc 10.2.0 and OpenMPI 4.0.4</div><div>- gcc 9.2.0 and OpenMPI 4.0.4</div><div>- intel 2019 and Intel MPI 2019</div><div><br></div><div>I noticed that some tests, like ADMMass/tov_carpet.par, gave</div><div>completely incorrect results. For example, the expected value is 1.3, </div><div>but I would find 1.6. </div><div><br></div><div>I disabled all the optimizations, but the test would keep failing. At the </div><div>end, I noticed that if I ran with 8/16/32 MPI processes per node, and </div><div>the corresponding number of OpenMP threads (128/N_MPI), the test </div><div>would fail, but if I ran with 4/2/1 MPI processes, the test would pass. </div><div><br></div><div>Most of my experiments were with gcc 10, but the test fails also with </div><div>the Intel suite.</div><div><br></div><div>I tried increasing the OMP_STACK_SIZE to a very large value, but </div><div>it didn&#39;t help. </div><div><br></div><div>Any idea of what the problem might be?</div><div><br></div><div>Gabriele</div><div><br></div><div>       </div><div><br></div><div><br></div></div>