<div dir="ltr"><div>Fixing typo: Meant to say "Keep in mind that individual KNL cores are much less powerful than an individual Haswell <b>core</b>."<br><br></div>--Richard<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 3, 2017 at 11:36 AM, Richard Mills <span dir="ltr"><<a href="mailto:richardtmills@gmail.com" target="_blank">richardtmills@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi Justin,<br><br></div>How is the MCDRAM (on-package "high-bandwidth memory") configured for your KNL runs? And if it is in "flat" mode, what are you doing to ensure that you use the MCDRAM? Doing this wrong seems to be one of the most common reasons for unexpected poor performance on KNL.<br><br></div><div>I'm not that familiar with the environment on Cori, but I think that if you are building for KNL, you should add "-xMIC-AVX512" to your compiler flags to explicitly instruct the compiler to use the AVX512 instruction set. I usually use something along the lines of<br><br> 'COPTFLAGS=-g -O3 -fp-model fast -xMIC-AVX512'<br><br></div><div>(The "-g" just adds symbols, which make the output from performance profiling tools much more useful.) <br></div><div><br></div>That said, I think that if you are comparing 1024 Haswell cores vs. 1024 KNL cores (so double the number of Haswell nodes), I'm not surprised that the simulations are almost twice as fast using the Haswell nodes. Keep in mind that individual KNL cores are much less powerful than an individual Haswell node. You are also using roughly twice the power footprint (dual socket Haswell node should be roughly equivalent to a KNL node, I believe). How do things look on when you compare equal nodes?<br><br></div>Cheers,<br></div>Richard<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 3, 2017 at 11:13 AM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>On NERSC's Cori I have the following configure options for PETSc:</div><div><br></div><div>./configure --download-fblaslapack --with-cc=cc --with-clib-autodetect=0 --with-cxx=CC --with-cxxlib-autodetect=0 --with-debugging=0 --with-fc=ftn --with-fortranlib-autodetect=0 --with-mpiexec=srun --with-64-bit-indices=1 COPTFLAGS=-O3 CXXOPTFLAGS=-O3 FOPTFLAGS=-O3 PETSC_ARCH=arch-cori-opt</div><div><br></div><div>Where I swapped out the default Intel programming environment with that of Cray (e.g., 'module switch PrgEnv-intel/6.0.3 PrgEnv-cray/6.0.3'). I want to document the performance difference between Cori's Haswell and KNL processors.</div><div><br></div><div>When I run a PETSc example like SNES ex48 on 1024 cores (32 Haswell and 16 KNL nodes), the simulations are almost twice as fast on Haswell nodes. Which leads me to suspect that I am not doing something right for KNL. Does anyone know what are some "optimal" configure options for running PETSc on KNL?</div><div><br></div><div>Thanks,</div><div>Justin</div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>