[gmx-developers] What is the best choice to profile
Theodore Si
sjyzhxw at gmail.com
Fri Aug 8 18:55:26 CEST 2014
Hi Mark,
I run cmake two times.
The first time I use these options:
cmake .. -DCMAKE_C_FLAGS="-L /usr/local/cuda/lib64-vt:cc mpicc"
-DCMAKE_CXX_FLAGS="-L /usr/local/cuda/lib64 -vt:cxx mpicxx"
-DCMAKE_INSTALL_PREFIX=/home/theo/myprg/gmx
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
-DCMAKE_C_COMPILER=/home/theo/myprg/vt/bin/vtcc-DCMAKE_CXX_COMPILER=/home/theo/myprg/vt/bin/vtcxx
-DCUDA_NVCC_EXECUTABLE=/home/theo/myprg/vt/bin/vtcxx-DCUDA_NVCC_EXECUTABLE=/home/theo/myprg/vt/bin/vtnvcc
and the second time just cmake .. without any option.
If I build GMX with the first approach, when I run mdrun, I get a
segmentation fault. If I build GMX with the second one, everything is fine.
So I compared the output of the two cmake commands, I found this:
17 -- Detecting best SIMD instructions for this CPU
18 -- Run output: Segmentation fault
19 -- Detected best SIMD instructions for this CPU - None
17 -- Detecting best SIMD instructions for this CPU
18 -- Detected best SIMD instructions for this CPU - AVX_256
I believe that you know where I am going.
So do you know how to fix this? Looking forward to your reply, thanks!
On 8/7/2014 10:56 PM, Mark Abraham wrote:
> Hi,
>
> First, what are you hoping to learn? Many questions have a known
> answer, or are known not to have a clear answer ;-)
>
> 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.
>
> 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.
>
> 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.
>
> Mark
>
>
> On Wed, Aug 6, 2014 at 10:58 AM, Theodore Si <sjyzhxw at gmail.com
> <mailto:sjyzhxw at gmail.com>> wrote:
>
> what kind of tools work best with gromacs 5.0?
>
>
> --
> Gromacs Developers mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
> before posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or send a mail to gmx-developers-request at gromacs.org
> <mailto:gmx-developers-request at gromacs.org>.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20140808/5c9e386e/attachment-0001.html>
More information about the gromacs.org_gmx-developers
mailing list