Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v1.10.1

  |   Home   |   Support   |   FAQ   |  
Building Custom Topologies

Functions

int hwloc_custom_insert_topology (hwloc_topology_t newtopology, hwloc_obj_t newparent, hwloc_topology_t oldtopology, hwloc_obj_t oldroot)
 
hwloc_obj_t hwloc_custom_insert_group_object_by_parent (hwloc_topology_t topology, hwloc_obj_t parent, int groupdepth)
 

Detailed Description

A custom topology may be initialized by calling hwloc_topology_set_custom() after hwloc_topology_init(). It may then be modified by inserting objects or entire topologies. Once done assembling, hwloc_topology_load() should be invoked as usual to finalize the topology.

Function Documentation

hwloc_obj_t hwloc_custom_insert_group_object_by_parent ( hwloc_topology_t  topology,
hwloc_obj_t  parent,
int  groupdepth 
)

Insert a new group object inside a custom topology.

An object with type HWLOC_OBJ_GROUP is inserted as a new child of object parent.

groupdepth is the depth attribute to be given to the new object. It may for instance be 0 for top-level groups, 1 for their children, and so on.

The custom topology newtopology must have been prepared with hwloc_topology_set_custom() and not loaded with hwloc_topology_load() yet.

parent may be either the root of topology or an object that was added earlier through hwloc_custom_insert_group_object_by_parent().

Note
The cpuset and nodeset of the new group object are NULL because these sets are meaningless when assembling multiple topologies.
The cpuset and nodeset of the parent object are not modified.
int hwloc_custom_insert_topology ( hwloc_topology_t  newtopology,
hwloc_obj_t  newparent,
hwloc_topology_t  oldtopology,
hwloc_obj_t  oldroot 
)

Insert an existing topology inside a custom topology.

Duplicate the existing topology oldtopology inside a new custom topology newtopology as a leaf of object newparent.

If oldroot is not NULL, duplicate oldroot and all its children instead of the entire oldtopology. Passing the root object of oldtopology in oldroot is equivalent to passing NULL.

The custom topology newtopology must have been prepared with hwloc_topology_set_custom() and not loaded with hwloc_topology_load() yet.

newparent may be either the root of newtopology or an object that was added through hwloc_custom_insert_group_object_by_parent().

Note
The cpuset and nodeset of the newparent object are not modified based on the contents of oldtopology.