[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