Re: [hwloc-announce] Hardware locality (hwloc) v2.0.0rc2 released

2018-01-29 Thread Samuel Thibault
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

2018-01-29 Thread Brice Goglin
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().
> -