<div dir="ltr"><div class="gmail_extra">Hi Everyone,</div><div class="gmail_extra"><br></div><div class="gmail_extra">Thank Erik and David for your replies. After some playing with g_hbond, I found some interesting phenomena which are both interesting and annoying. </div>
<div class="gmail_extra"><br></div><div class="gmail_extra">First, it seems the -don flag corrupts the g_hbond. When I turned on this flag, g_hbond would either show &quot;Segmentation fault&quot; immediately, or run single_threaded (judged from system monitor) and very slowly for quite a while, and then show &quot;Segmentation fault&quot;. With this flag, g_hbond never finished its job gracefully. I tested it using both GROMACS 4.6.5 (compiled by gcc 4.6 and 4.7) and GROMACS 5.0 .</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Second, if -don turned off, apparently the stage of grid search runs with OpenMP enabled, and g_hbond can function properly. However, the system monitor showed the load was quite evenly distributed on all the 8 logical cores (i7-3770K), but the CPU utilizations for all the logical cores were around 50%. At first, I thought maybe it was relevant to Hyperthreading of 3770K and the physical cores were kept busy all the time. However my experiment on another machine equipped with an ancient CPU (Core2 quad 6600, no HT) showed exactly the same phenomenon. Actually the speed of g_hbond in these two cases were still satisfactory. I just want to present some useful information that might indicate some performance issue with the OpenMP implementation of g_hbond and arouse the attention of the developer(s) to investigate it. </div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I attached the compilation information for GROMACS 4.6.5 on my 3770K machine.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">
<br></div><div class="gmail_extra">Bin</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">Gromacs version:    VERSION 4.6.5</div><div class="gmail_extra">Precision:          single</div>
<div class="gmail_extra">Memory model:       64 bit</div><div class="gmail_extra">MPI library:        thread_mpi</div><div class="gmail_extra">OpenMP support:     enabled</div><div class="gmail_extra">GPU support:        enabled</div>
<div class="gmail_extra">invsqrt routine:    gmx_software_invsqrt(x)</div><div class="gmail_extra">CPU acceleration:   AVX_256</div><div class="gmail_extra">FFT library:        fftw-3.3.3-sse2</div><div class="gmail_extra">
Large file support: enabled</div><div class="gmail_extra">RDTSCP usage:       enabled</div><div class="gmail_extra">Built on:           Sat Dec 21 12:37:38 EST 2013</div><div class="gmail_extra">Built by:           main@MainPC [CMAKE]</div>
<div class="gmail_extra">Build OS/arch:      Linux 3.5.0-41-generic x86_64</div><div class="gmail_extra">Build CPU vendor:   GenuineIntel</div><div class="gmail_extra">Build CPU brand:    Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz</div>
<div class="gmail_extra">Build CPU family:   6   Model: 58   Stepping: 9</div><div class="gmail_extra">Build CPU features: aes apic avx clfsh cmov cx8 cx16 f16c htt lahf_lm mmx msr nonstop_tsc pcid pclmuldq pdcm popcnt pse rdrnd rdtscp sse2 sse3 sse4.1 sse4.2 ssse3 tdt</div>
<div class="gmail_extra">C compiler:         /usr/bin/gcc GNU gcc (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04) 4.6.4</div><div class="gmail_extra">C compiler flags:   -mavx    -Wextra -Wno-missing-field-initializers -Wno-sign-compare -Wall -Wno-unused -Wunused-value   -fomit-frame-pointer -funroll-all-loops -fexcess-precision=fast  -O3 -DNDEBUG</div>
<div class="gmail_extra">C++ compiler:       /usr/bin/c++ GNU c++ (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04) 4.6.4</div><div class="gmail_extra">C++ compiler flags: -mavx   -Wextra -Wno-missing-field-initializers -Wno-sign-compare -Wall -Wno-unused -Wunused-value   -fomit-frame-pointer -funroll-all-loops -fexcess-precision=fast  -O3 -DNDEBUG</div>
<div class="gmail_extra">CUDA compiler:      /usr/local/cuda-5.0/bin/nvcc nvcc: NVIDIA (R) Cuda compiler driver;Copyright (c) 2005-2012 NVIDIA Corporation;Built on Fri_Sep_21_17:28:58_PDT_2012;Cuda compilation tools, release 5.0, V0.2.1221</div>
<div class="gmail_extra">CUDA compiler flags:-gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=sm_21;-gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_35,code=compute_35;-use_fast_math;-ccbin=/usr/bin/gcc;-Xcompiler;-fPIC ; -mavx;-Wextra;-Wno-missing-field-initializers;-Wno-sign-compare;-Wall;-Wno-unused;-Wunused-value;-fomit-frame-pointer;-funroll-all-loops;-fexcess-precision=fast;-O3;-DNDEBUG</div>
<div class="gmail_extra">CUDA driver:        5.50</div><div class="gmail_extra">CUDA runtime:       5.0</div></div></div>