<div dir="ltr">Hi,<div><br></div><div>First, what are you hoping to learn? Many questions have a known answer, or are known not to have a clear answer ;-)</div><div><br></div><div>It&#39;s a compound problem. Profilers that just need to compile with standard profiling flags are fine - just configure with -DCMAKE_BUILD_TYPE=Profile and go for it. Those that need to influence the compilation or linker line are more problematic. Just passing the (full path to) the wrapper compiler should work fine. If you need to pass things to the wrapper compiler, make yourself a script to wrap the wrapper compiler and give that to CMake. Whether the things the tool&#39;s wrapper compiler does clashes with things GROMACS is doing varies a lot, and you will need to get involved in the details to see what the origin of any problems are. That&#39;s not anybody&#39;s fault, per se, but the writer of a wrapper compiler typically hopes the end user is not managing details themselves, but to get high performance you often have to manage details, and some of those details show up on the compiler command lines generated by the GROMACS build system. And naturally you&#39;ll be interested in MPI+OpenMP+CUDA, each of which compounds the problem with further wrapper compilers or command-line stuff.</div>
<div><br></div><div>Once it&#39;s working, you have the problem of whether you can get useful data. Instrumenting every function call, or compromising function inlining is guaranteed to be useless because that overhead kills things. The main interesting case to profile is where the MD step iteration time is a few milliseconds, and you can&#39;t introduce thousands of increments of tens of nanoseconds and get sensible profiles. So either you have to restrict the instrumentation to high-level functions (which is painful; the output at the end of the GROMACS log file is a coarse version of this averaged over many steps and execution contexts), or use a sampling-based approach.</div>
<div><br></div><div>Then you need to start collecting data after the run-time performance tuning that mdrun does has already stabilized - at least a few hundred MD steps. Longer if the MD load is imbalanced, which is also the main interesting case to consider for code modifications.</div>
<div><br></div><div>Mark</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 6, 2014 at 10:58 AM, Theodore Si <span dir="ltr">&lt;<a href="mailto:sjyzhxw@gmail.com" target="_blank">sjyzhxw@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">what kind of tools work best with gromacs 5.0?</p>
<br>--<br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org">gmx-developers-request@gromacs.org</a>.<br>
</blockquote></div><br></div>