Re: [hwloc-announce] Hardware locality (hwloc) v2.0.0rc2 released
Brice Goglin, on lun. 29 janv. 2018 22:22:58 +0100, wrote: > 2.0.0rc2 is out. And is now uploaded to Debian experimental. > Changes since rc1 include: > * Mac OS X core and hyperthread discovery fixes > * Memory binding improvements on Linux and Windows > * Some clarification about the memory binding policies > * Some minor configure/build fixes > * Many documentation updates > > I'd like to say we won't need a rc3, but we got several reports > after rc1, hence I can't be sure it won't happen again :) > > Note that the Upgrading page is being moved from the wiki > to the official documentation (available from the Related Pages tab): > https://www.open-mpi.org/projects/hwloc/doc/v2.0.0rc2/a00327.php > > Brice > > > > Le 16/01/2018 à 16:51, Brice Goglin a écrit : > > > The Hardware Locality (hwloc) team is pleased to announce the first > > release candidate for v2.0.0: > > > >http://www.open-mpi.org/projects/hwloc/ > > > > v2.0.0 is the result of more than 2 years of work. > > There are lots of changes as listed below, including > > * Better support for upcoming heterogeneous/hybrid/non-volatile > > memory technologies, which involves significant changes in the > > way NUMA nodes are attached to the tree and placed in a level. > > * API changes to cleanup bad ideas from 8 years ago > > > > You are strongly encouraged to > > ** try porting your code to this release candidate as soon as possible ** > > and report any issue about the new API. > > We can still change the API until the final 2.0 is released. > > But we cannot break it later! > > > > See https://github.com/open-mpi/hwloc/wiki/Upgrading-to-v2.0-API > > for details about API changes. > > > > Version 2.0.0 > > - > > *** The ABI of the library has changed. *** > > For instance some hwloc_obj fields were reordered, added or removed, see > > below. > > + HWLOC_API_VERSION and hwloc_get_api_version() now give 0x0002. > > + See "How do I handle ABI breaks and API upgrades ?" in the FAQ > > and https://github.com/open-mpi/hwloc/wiki/Upgrading-to-v2.0-API > > * Major API changes > > + Memory, I/O and Misc objects are now stored in dedicated children lists, > > not in the usual children list that is now only used for CPU-side > > objects. > > - hwloc_get_next_child() may still be used to iterate over these 4 lists > > of children at once. > > - hwloc_obj_type_is_normal(), _memory() and _io() may be used to check > > the kind of a given object type. > > + Topologies always have at least one NUMA object. On non-NUMA machines, > > a single NUMA object is added to describe the entire machine memory. > > The NUMA level cannot be ignored anymore. > > + The NUMA level is special since NUMA nodes are not in the main hierarchy > > of objects anymore. Its depth is a fake negative depth that should not > > be > > compared with normal levels. > > - If all memory objects are attached to parents at the same depth, > > it may be retrieved with hwloc_get_memory_parents_depth(). > > + The HWLOC_OBJ_CACHE type is replaced with 8 types HWLOC_OBJ_L[1-5]CACHE > > and HWLOC_OBJ_L[1-3]ICACHE that remove the need to disambiguate levels > > when looking for caches with _by_type() functions. > > - New hwloc_obj_type_is_{,d,i}cache() functions may be used to check > > whether > > a given type is a cache. > > + Reworked ignoring/filtering API > > - Replace hwloc_topology_ignore*() functions with > > hwloc_topology_set_type_filter() > > and hwloc_topology_set_all_types_filter(). > > . Contrary to hwloc_topology_ignore_{type,all}_keep_structure() which > > removed individual objects, HWLOC_TYPE_FILTER_KEEP_STRUCTURE only > > removes > > entire levels (so that topology do not become too asymmetric). > > - Remove HWLOC_TOPOLOGY_FLAG_ICACHES in favor of > > hwloc_topology_set_icache_types_filter() > > with HWLOC_TYPE_FILTER_KEEP_ALL. > > - Remove HWLOC_TOPOLOGY_FLAG_IO_DEVICES, _IO_BRIDGES and _WHOLE_IO in > > favor of > > hwloc_topology_set_io_types_filter() with HWLOC_TYPE_FILTER_KEEP_ALL > > or > > HWLOC_TYPE_FILTER_KEEP_IMPORTANT. > > + The distance API has been completely reworked. It is now described > > in hwloc/distances.h. > > + Return values > > - Most functions in hwloc/bitmap.h now return an int that may be > > negative > > in case of failure to realloc/extend the internal storage of a bitmap. > > - hwloc_obj_add_info() also returns an int in case allocations fail. > > * Minor API changes > > + Object attributes > > - obj->memory is removed. > > . local_memory and page_types attributes are now in > > obj->attr->numanode > > . total_memory moves obj->total_memory. > > - Objects do not have allowed_cpuset and allowed_nodeset anymore. > > They are only available for the entire topology using > > hwloc_topology_get_allowed_cpuset() and > >
[hwloc-announce] Hardware locality (hwloc) v2.0.0rc2 released
Hello 2.0.0rc2 is out. Changes since rc1 include: * Mac OS X core and hyperthread discovery fixes * Memory binding improvements on Linux and Windows * Some clarification about the memory binding policies * Some minor configure/build fixes * Many documentation updates I'd like to say we won't need a rc3, but we got several reports after rc1, hence I can't be sure it won't happen again :) Note that the Upgrading page is being moved from the wiki to the official documentation (available from the Related Pages tab): https://www.open-mpi.org/projects/hwloc/doc/v2.0.0rc2/a00327.php Brice Le 16/01/2018 à 16:51, Brice Goglin a écrit : > The Hardware Locality (hwloc) team is pleased to announce the first > release candidate for v2.0.0: > >http://www.open-mpi.org/projects/hwloc/ > > v2.0.0 is the result of more than 2 years of work. > There are lots of changes as listed below, including > * Better support for upcoming heterogeneous/hybrid/non-volatile > memory technologies, which involves significant changes in the > way NUMA nodes are attached to the tree and placed in a level. > * API changes to cleanup bad ideas from 8 years ago > > You are strongly encouraged to > ** try porting your code to this release candidate as soon as possible ** > and report any issue about the new API. > We can still change the API until the final 2.0 is released. > But we cannot break it later! > > See https://github.com/open-mpi/hwloc/wiki/Upgrading-to-v2.0-API > for details about API changes. > > Version 2.0.0 > - > *** The ABI of the library has changed. *** > For instance some hwloc_obj fields were reordered, added or removed, see > below. > + HWLOC_API_VERSION and hwloc_get_api_version() now give 0x0002. > + See "How do I handle ABI breaks and API upgrades ?" in the FAQ > and https://github.com/open-mpi/hwloc/wiki/Upgrading-to-v2.0-API > * Major API changes > + Memory, I/O and Misc objects are now stored in dedicated children lists, > not in the usual children list that is now only used for CPU-side objects. > - hwloc_get_next_child() may still be used to iterate over these 4 lists > of children at once. > - hwloc_obj_type_is_normal(), _memory() and _io() may be used to check > the kind of a given object type. > + Topologies always have at least one NUMA object. On non-NUMA machines, > a single NUMA object is added to describe the entire machine memory. > The NUMA level cannot be ignored anymore. > + The NUMA level is special since NUMA nodes are not in the main hierarchy > of objects anymore. Its depth is a fake negative depth that should not be > compared with normal levels. > - If all memory objects are attached to parents at the same depth, > it may be retrieved with hwloc_get_memory_parents_depth(). > + The HWLOC_OBJ_CACHE type is replaced with 8 types HWLOC_OBJ_L[1-5]CACHE > and HWLOC_OBJ_L[1-3]ICACHE that remove the need to disambiguate levels > when looking for caches with _by_type() functions. > - New hwloc_obj_type_is_{,d,i}cache() functions may be used to check > whether > a given type is a cache. > + Reworked ignoring/filtering API > - Replace hwloc_topology_ignore*() functions with > hwloc_topology_set_type_filter() > and hwloc_topology_set_all_types_filter(). > . Contrary to hwloc_topology_ignore_{type,all}_keep_structure() which > removed individual objects, HWLOC_TYPE_FILTER_KEEP_STRUCTURE only > removes > entire levels (so that topology do not become too asymmetric). > - Remove HWLOC_TOPOLOGY_FLAG_ICACHES in favor of > hwloc_topology_set_icache_types_filter() > with HWLOC_TYPE_FILTER_KEEP_ALL. > - Remove HWLOC_TOPOLOGY_FLAG_IO_DEVICES, _IO_BRIDGES and _WHOLE_IO in > favor of > hwloc_topology_set_io_types_filter() with HWLOC_TYPE_FILTER_KEEP_ALL or > HWLOC_TYPE_FILTER_KEEP_IMPORTANT. > + The distance API has been completely reworked. It is now described > in hwloc/distances.h. > + Return values > - Most functions in hwloc/bitmap.h now return an int that may be negative > in case of failure to realloc/extend the internal storage of a bitmap. > - hwloc_obj_add_info() also returns an int in case allocations fail. > * Minor API changes > + Object attributes > - obj->memory is removed. > . local_memory and page_types attributes are now in obj->attr->numanode > . total_memory moves obj->total_memory. > - Objects do not have allowed_cpuset and allowed_nodeset anymore. > They are only available for the entire topology using > hwloc_topology_get_allowed_cpuset() and > hwloc_topology_get_allowed_nodeset(). > - Objects now have a "subtype" field that supersedes former "Type" and > "CoProcType" info attributes. > + Object and level depths are now signed ints. > + Object string printing and parsing > - hwloc_type_sscanf() deprecates the old hwloc_obj_type_sscanf(). > -