[gmx-users] compiling 2018.3 ... problems with hwloc

Michael Brunsteiner mbx0009 at yahoo.com
Thu Sep 27 22:57:08 CEST 2018


Hi,

In the past I compiled gmx 2016.4 on our old cluster and this worked as expected.
Now I just compiled 2018.3 only to find that the resulting binary was unexpectedly slow ...
On each node I have a multi-core architecture with 12 logical threads, 
but htop shows that gmx uses only one thread.
Google-ing i found that the problem is probably due to gmx not properly 
detecting my hardware as described here:
https://mailman-1.sys.kth.se/pipermail/gromacs.org_gmx-users/2018-January/117830.html

So as suggested in the above post i tried to re-compile gmx with the 
flag  -DGMX_HWLOC=ON (after installing hwloc-2.0.2 locally).
"cmake" reports no problem, but when i do "make" compilation stops with 
errors that are obviously related to hwloc ... see below.

any ideas on how to resolve this so that 2018 runs as expected would be 
highly appreciated!

cheers,
Michael


compiling gmx 2018:

prompt> cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=OFF 
-DCMAKE_INSTALL_PREFIX=/home/micb/local/gromacs-2018.3-bin 
-DGMX_HWLOC=ON -DCMAKE_C_COMPILER=/home/micb/local/bin/gcc 
-DCMAKE_CXX_COMPILER=/home/micb/local/bin/g++ 
-DCMAKE_LIBRARY_PATH=/home/micb/local/lib:/home/micb/local/lib64

no complaints here

prompt> make -j 4
...
[ 96%] Building CXX object 
src/gromacs/CMakeFiles/libgromacs.dir/hardware/printhardware.cpp.o
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp: 
In function ?int gmx::{anonymous}::parseHwLocNuma(hwloc_topology_t, 
gmx::HardwareTopology::Machine*)?:
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:354:64: 
error: ?struct hwloc_obj? has no member named ?memory?
              machine->numa.nodes[i].memory = 
hwlocNumaNodes[i]->memory.total_memory;
                                                                 ^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:378:101: 
error: ?hwloc_get_whole_distance_matrix_by_depth? was not declared in 
this scope
          const struct hwloc_distances_s * dist = 
hwloc_get_whole_distance_matrix_by_depth(topo, depth);
^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:381:54: 
error: ?const struct hwloc_distances_s? has no member named ?latency_base?
              machine->numa.baseLatency        = dist->latency_base;
                                                       ^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:382:54: 
error: ?const struct hwloc_distances_s? has no member named ?latency_max?
              machine->numa.maxRelativeLatency = dist->latency_max;
                                                       ^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:389:65: 
error: ?const struct hwloc_distances_s? has no member named ?latency?
                      machine->numa.relativeLatency[i][j] = 
dist->latency[i*dist->nbobjs+j];
                                                                  ^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:407:65: 
error: ?struct hwloc_obj? has no member named ?memory?
              machine->numa.nodes[0].memory       = 
hwlocMachine->memory.total_memory;
                                                                  ^
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp: 
In function ?void 
gmx::{anonymous}::parseHwLoc(gmx::HardwareTopology::Machine*, 
gmx::HardwareTopology::SupportLevel*, bool*)?:
/home/micb/local/gromacs-2018.3/src/gromacs/hardware/hardwaretopology.cpp:507:36: 
error: ?HWLOC_TOPOLOGY_FLAG_IO_DEVICES? was not declared in this scope
      hwloc_topology_set_flags(topo, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);
                                     ^
[ 96%] Building CXX object 
src/gromacs/CMakeFiles/libgromacs.dir/hardware/identifyavx512fmaunits.cpp.o




More information about the gromacs.org_gmx-users mailing list