Task #2539

Support hwloc 2.x.x

Added by Kevin Boyd 18 days ago. Updated 4 days ago.

Target version:


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?

#4 Updated by Kevin Boyd 5 days ago

I'm working on it, yes.

#5 Updated by Mark Abraham 4 days ago

GROMACS 2019 will support hwloc 1.x, and (once we get this working) also hwloc 2.x. So master branch will support both flavours once we're done. We might consider removing the support for 1.x in GROMACS 2020, but that's not a decision we need to take now.

Also available in: Atom PDF