Support hwloc 2.x.x
hwloc versions 2.0.0 and up (current stable release is 2.0.1) have some API changes that need to be addressed, for example hwloc objects no longer have a memory attribute.
#1 Updated by Mark Abraham 18 days ago
Yeah we should do that. We probably need to write some kind of compatibility layer because we should probably continue to support hwloc 1.x until at least GROMACS 2020.
If we bundle hwloc some time (as IMO the only practical way to support linking a fully static binary), we should definitely do so from hwloc 2.x, however.
#2 Updated by Mark Abraham 5 days ago
When he visited recently, Kevin was interested to work on providing a wrapper layer so that the current use of hwloc in gromacs doesn't need to know which version is linked. We need to be able to support both flavours of hwloc moving forward. That's currently a small surface area, so maybe we can backport to release-2018 when we see the full scope.
#3 Updated by Prashanth Kanduri 5 days ago
As mark mentioned to me, the master branch must support hwloc 1.x for at least an year before only focussing on hwloc 2.x+ only. Since the 2018 version already supports hwloc 1.x, we can consider if this is necessary on the master branch as well if 2019 plans to phase it out.
One can make two preprocessor pathways based on the hwloc version. One using the old API, and another the new one. It amounts to duplication of a few lines in hardwaretopology.cpp.
Has anyone already started work on it?