<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Mark,<br>
<br>
Thanks for your attention. I have some questions for you.<br>
<br>
1. Profilers that just need to compile with standard profiling flags
are fine - just configure with -DCMAKE_BUILD_TYPE=Profile and go for
it. <br>
It seems that this is convenient. What profilers can be used in this
way? <font color="#ff0000">What tools do you guys use to profile?</font><br>
2. If you need to pass things to the wrapper compiler, make yourself
a script to wrap the wrapper compiler and give that to CMake. <br>
I think it's the case when I compile GMX with Vampir Trace. We need
to use the command <font color="#33ff33">vtcc -vt:cc mpicc
sourcefile.c -o a.out</font> to instrument MPI code. Should
"-vt:cc mpicc" be passed to vtcc, which is set to CMAKE_C_COMPILER,
as argument? I don't know how to "make yourself a script to wrap the
wrapper compiler and give that to CMake". How to give a script to
CMake exactly? I have not used CMake before, please give me some
instructions.<br>
<br>
When I use Vampir Trace, some weird errors occur:<br>
<br>
1. In some source files, some multiple-line comments are processed
by the compiler. If I change them to one-line comments, it works
fine. I have no idea why that happens.<br>
2. If I use the following configuration:<br>
<span style="font-family:Calibri" lang="zh-CN">cmake ..</span><span
style="font-family:
Calibri" lang="en-US"> </span><span style="font-family:Calibri"
lang="zh-CN">-DCMAKE_INSTALL_PREFIX=$MYPRG</span><span
style="font-family:SimSun" lang="en-US">/</span><span
style="font-family:Calibri" lang="zh-CN">gmx</span><span
style="font-family:Calibri" lang="en-US"> </span><span
style="font-family:Calibri" lang="zh-CN">-</span><span
style="font-family:Calibri" lang="en-US">DCU</span><span
style="font-family:Calibri" lang="zh-CN">DA_TOOLKIT_ROOT_DIR=/usr/local/cuda</span><span
style="font-family:Calibri" lang="en-US"> -D</span><span
style="font-family:Calibri" lang="zh-CN">CUDA_CUDA_LIBRARY</span><span
style="font-family:Calibri" lang="en-US">=/usr/lib64/libcuda.so </span><span
style="font-family:Calibri" lang="zh-CN">-DCMAKE_C_COMPILER=vtcc
-DCMAKE_CXX_COMPILER</span><span style="font-family:Calibri"
lang="en-US">=</span><span style="font-family:Calibri"
lang="zh-CN">vtc</span><span style="font-family:Calibri"
lang="en-US">xx -D</span><span style="font-family:Calibri"
lang="zh-CN">CUDA_NVCC_EXECUTABLE</span><span
style="font-family:Calibri" lang="en-US">=vtnvcc </span><span
style="font-family:
Calibri" lang="zh-CN">-DGMX_MPI=ON</span><span
style="font-family:Calibri" lang="en-US"> </span><span
style="font-family:Calibri" lang="zh-CN">-DGMX_BUILD_OWN_FFTW=ON</span><br>
The compilation can be done. And when I run grompp to generate tpr,
it's OK and Vampir Trace will generate trace files. When I run mdrun
without parameters, it also generate trace files. However, when I
actually start mdrun with a tpr file, it will give a <font
color="#ff0000">segmentation fault</font>.<br>
<br>
<br>
<div class="moz-cite-prefix">On 8/7/2014 10:56 PM, Mark Abraham
wrote:<br>
</div>
<blockquote
cite="mid:CAMNuMATCxO+O5Ei+f1PUm98=piBSxUub9CNszfggW69=Wr7zuw@mail.gmail.com"
type="cite">
<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'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'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's not
anybody'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'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'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'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"><<a moz-do-not-send="true"
href="mailto:sjyzhxw@gmail.com" target="_blank">sjyzhxw@gmail.com</a>></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 moz-do-not-send="true"
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't post? Read <a moz-do-not-send="true"
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 moz-do-not-send="true"
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 moz-do-not-send="true"
href="mailto:gmx-developers-request@gromacs.org">gmx-developers-request@gromacs.org</a>.<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
</body>
</html>