<div dir="ltr"><div>Dear David,</div><div>to be short, I would suggest to:</div><div>1) Use libxsmm, very fast to install and practical</div><div>2) Use ELPA</div><div><br></div><div>There are other libraries you can consider, like libint and libxc, that this is another discussion...</div><div><br></div><div>Best regards,</div><div><br></div><div>Alfio</div><div><br></div><br><br>Il giorno lunedì 16 maggio 2016 00:45:30 UTC+2, Hans Pabst ha scritto:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Dear David,<br><br>let me answer your questions one by one (please also account for other people's answers, which may be given below)<br><br>>>> If I understood correctly libxsmm make sense only on intel machine.<br>It makes a lot of sense on Intel CPUs in particular, and x86/64 in general. I am rarely testing (occasionally) on non-Intel x86/64, but I have no idea if performance exploits the full potential of the CPU (perhaps it does as there is nothing in LIBXSMM, which is preventing this).<br><br>>>> Assuming this is the case, are libxsmm and libsmm complementary or they 
do the same job?<br>If not downloaded, LIBSMM per-se does not exists as a library except if you want to auto-tune LIBSMM yourself. The installer script downloads it from <a href="https://www.cp2k.org/static/downloads/libsmm/" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.cp2k.org%2Fstatic%2Fdownloads%2Flibsmm%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHRJkCcM4SJY3uOZWaArdxdTIbqSA';return true;" onclick="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fwww.cp2k.org%2Fstatic%2Fdownloads%2Flibsmm%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHRJkCcM4SJY3uOZWaArdxdTIbqSA';return true;">https://www.cp2k.org/static/<wbr>downloads/libsmm/</a>, and the majority of kernels in version "libsmm_dnn_haswell-2015-11-<wbr>10.a" is taken from LIBXSMM (beside of JIT, LIBXSMM supports to print C code with inline assembly, which can be included into LIBSMM's auto-tuning). If you're running any of the kernels included in "libsmm_dnn_haswell-2015-11-<wbr>10.a" on Haswell, you do not miss any performance opportunity. If you are running on anything other than "Haswell" or "exotic" kernels which are not in "libsmm_dnn_haswell-2015-11-<wbr>10.a", you may want to use LIBXSMM.<br><br>>>> if they do the same things what is the best one?<br>Hard to say but let me try: LIBSMM is the default because it's the way it worked and the way it works (rock-solid). LIBXSMM is certainly attractive because anyone can build the library without auto-tuning effort, any kind of kernel (whether it's uncommon or not) is "included" i.e. built on demand, performance is very good and independent of the compiler used.<br><br>>>> I managed to have cp2k with ELPA, does it make any sense having cp2k compiled with ELPA plus libsmm and/or libxsmm?<br>It does, and ELPA vs. LIB(X)SMM are completely independent choices. ELPA covers functionality which is not covered by LIB(X)SMM. If you want duality, the question is whether you want ELPA or ScaLAPACK, and I recommend to use ELPA. Fortunately this decision is also not really exclusive since ELPA only replaces some particular function from the ScaLAPACK collection (some particular Eigenvalue solver).<br><br>>>> my guess here is that yes it does, is it true?<br>Yes, it does makes sense to use ELPA.<br><br>-Hans<br><br><br>Am Sonntag, 15. Mai 2016 17:44:10 UTC+2 schrieb David T:<blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Dear All<br><br>I've just started using cp2k I am not really expert in libraries I would like to have some opinions form developers and experts (both of cp2k and libraries).<br><br><br>a) If I understood correctly libxsmm make sense only on intel machine. Assuming this is the case, are libxsmm and libsmm complementary or they do the same job?<br><br>aa) if they do the same things what is the best one? <br><br>b) I managed to have cp2k with ELPA, does it make any sense having cp2k compiled with ELPA plus libsmm and/or libxsmm? <br>my guess here is that yes it does, is it true?<br><br>Many thanks and apologies if my questions are silly<br>Davide<br><br>P.S. I know the best way it would be testing which I will do it, still having opinions from people more expert than you and sharing experience it is useful I think.<br></div></blockquote></div></blockquote></div>