Skip to content

Commit

Permalink
update release notes for 0.8.0 (#890)
Browse files Browse the repository at this point in the history
* changelog updates for 0.8.0 rel

* rel notes updates for 0.8.0 rel

* pin spack fork for 0.8.0 rel
  • Loading branch information
cyrush committed Dec 20, 2021
1 parent 0f1fd71 commit 3d8359a
Show file tree
Hide file tree
Showing 6 changed files with 112 additions and 55 deletions.
2 changes: 1 addition & 1 deletion .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"spack_configs_path": "scripts/uberenv_configs/spack_configs",
"spack_packages_path": "scripts/uberenv_configs/packages",
"spack_url": "https://github.com/alpine-DAV/spack",
"spack_branch": "ascent/develop",
"spack_branch": "conduit/releases/v0.8.0",
"spack_activate" : {"py-numpy" : ["+python"],
"py-sphinx": ["+python","+doc"],
"py-mpi4py" : ["+python", "+mpi"],
Expand Down
20 changes: 14 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Notable changes to Conduit are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project aspires to adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased
## [0.8.0] - Released 2021-12-20


### Added
Expand All @@ -15,17 +15,22 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
- Added support to register custom memory allocators and a custom data movement handler. This allows conduit to move trees of data between heterogenous memory spaces (e.g. CPU and GPU memory). See conduit_utils.hpp for API details.

#### Blueprint
- Added the `blueprint::mesh::examples::polychain` example. It is an example of a polyhedral mesh. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polychain) for more details.
- Added to the `blueprint::mesh::examples::polytess` example. Now `polytess` takes a new argument, called `nz`, which allows it to be extended into 3 dimensions. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polytess) for more details.
- Added `conduit::blueprint::{mpi}::partition` function that provides a general N-to-M partition capability for Blueprint Meshes. This helps with load balancing and other use cases, including fusing multi-domain data to simplifying post processing. This capability supports several options, see (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh_partition.html) for more details.
- Added a `Table` blueprint used to represent tables of numeric data. See (https://llnl-conduit.readthedocs.io/en/latest/blueprint_table.html) more details.
- Added `conduit::blueprint::{mpi}::flatten` which transforms Blueprint Meshes into Blueprint Tables. This transforms Mesh Blueprint data into a form that is more easily digestible in machine learning applications.
- Added `conduit::blueprint::mpi::generate_partition_field`, which uses Parmetis to create a field that identifies how to load balance an input mesh elements. This field can be used as a Field selection input to `conduit::blueprint::mpi::partition` function.
- Added the`blueprint::mesh::examples::polychain` example. It is an example of a polyhedral mesh. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polychain) for more details.
- Added a new function signature for `blueprint::mesh::topology::unstructured::generate_sides`, which performs the same task as the original and also takes fields from the original topology and maps them onto the new topology.
- Added `blueprint::mpi::mesh::to_polygonal`, which provides a MPI aware conversion Blueprint Structured AMR meshes to a Blueprint Polyhedral meshes.
- Added a host of `conduit::blueprint::mpi::mesh::generate_*` methods, which are the MPI parallel equivalents of the `conduit::blueprint::mesh::topology::unstructured::generate_*` functions.
- Added the `conduit::blueprint::mpi::mesh::find_delegate_domain` function, which returns a single delegate domain for the given mesh across MPI ranks (useful when all ranks need mesh information and some ranks can have empty meshes).
- Added check and transform functions for the newly-designated `pairwise` and `maxshare` variants of `adjsets`. For more information, see the `conduit::blueprint::mesh::adjset` namespace.
- Added `mesh::topology::unstructured::to_polytopal` as an alias to `mesh::topology::unstructured::to_polygonal`, to reflect that both polygonal and polyhedral are supported.
- Added `conduit::blueprint::mpi::mesh::to_polytopal` as an alias to `conduit::blueprint::mpi::mesh::to_polygonal` and `conduit::blueprint::mpi::mesh::to_polyhedral`.


#### Relay
- Added `conduit::relay::io::hdf5_identifier_report` methods, which creates a conduit node that describes active hdf5 resource handles.
- Added `conduit::relay::io::hdf5_identifier_report` methods, which create conduit nodes that describes active hdf5 resource handles.


### Changed
Expand All @@ -36,6 +41,7 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
- `conduit::Node::print()` and in Python Node `repr` and `str` now use `to_summary_string()`. This reduces the output for large Nodes. Full output is still supported via `to_string()`, `to_yaml()`, etc methods.

#### Blueprint
- The `blueprint::mesh::examples::polytess` function now takes a new argument, called `nz`, which allows it to be extended into 3 dimensions. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polytess) for more details.
- Added support for both `const` and non-`const` inputs to the `conduit::blueprint::mesh::domains` function.
- Improved mesh blueprint index generation logic (local and MPI) to support domains with different topos, fields, etc.
- Deprecated accepting `npts_z !=0` for 2D shape types in `conduit::blueprint::mesh::examples::{braid,basic,grid}`. They issue a `CONDUIT_INFO` message when this detected and future versions will issue a `CONDUIT_ERROR`.
Expand All @@ -53,7 +59,7 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
#### General
- Avoid compile issue with using `_Pragma()` with Python 3.8 on Windows
- `conduit_node` and `conduit_datatype` in the C API are no longer aliases to `void` so that callers cannot pass just any pointer to the APIs.
- Fixed overread issue with Fortran API due to int vs bool binding error. Fortran API still provides logical returns for methods like conduit_node_has_path() however the binding implementation now properly translates C_INT return codes into logical values.
- Fixed memory over read issue with Fortran API due to int vs bool binding error. Fortran API still provides logical returns for methods like conduit_node_has_path() however the binding implementation now properly translates C_INT return codes into logical values.
- Fixed a subtle bug with Node fetch and Object role initialization.

#### Blueprint
Expand Down Expand Up @@ -556,7 +562,9 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
### Added
- Initial Open Source Release on GitHub

[Unreleased]: https://github.com/llnl/conduit/compare/v0.7.1...HEAD
[Unreleased]: https://github.com/llnl/conduit/compare/v0.8.0...HEAD
[0.8.0]: https://github.com/llnl/conduit/compare/v0.7.2...v0.8.0
[0.7.2]: https://github.com/llnl/conduit/compare/v0.7.1...v0.7.2
[0.7.1]: https://github.com/llnl/conduit/compare/v0.7.0...v0.7.1
[0.7.0]: https://github.com/llnl/conduit/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/llnl/conduit/compare/v0.5.1...v0.6.0
Expand Down
4 changes: 4 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,9 @@ stages:
export APT_PKGS="$APT_PKGS libbz2-dev"
export APT_PKGS="$APT_PKGS openmpi-bin"
export APT_PKGS="$APT_PKGS libopenmpi-dev"
# display packages
echo "Installing APT_PKGS:"
echo $APT_PKGS
# install pkgs we need
sudo apt-get -y install $APT_PKGS
displayName: 'Prepare build env'
Expand Down Expand Up @@ -355,6 +358,7 @@ stages:
# silo constraints
if [ $ENABLE_SILO = 'ON' ]; then export SPACK_SPEC="${SPACK_SPEC} ^silo~mpi"; fi
# show final spec
echo "Spack Spec:"
echo $SPACK_SPEC
# run uber to build tpls
python scripts/uberenv/uberenv.py -k --pull --spec "${SPACK_SPEC}" --spack-config-dir=scripts/uberenv_configs/spack_configs/configs/alpinedav/ubuntu_18_devel/
Expand Down
6 changes: 3 additions & 3 deletions src/docs/sphinx/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,16 @@

# General information about the project.
project = u'Conduit'
copyright = u'Copyright (c) 2015-2020, LLNS'
copyright = u'Copyright (c) 2015-2021, LLNS'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.7.2'
version = '0.8.0'
# The full version, including alpha/beta/rc tags.
release = '0.7.2'
release = '0.8.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
87 changes: 87 additions & 0 deletions src/docs/sphinx/releases.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,93 @@ https://github.com/LLNL/conduit/releases

.. note:: Conduit uses `BLT <https://github.com/LLNL/blt>`__ as its core CMake build system. We leverage BLT as a git submodule, however github does not include submodule contents in its automatically created source tarballs. To avoid confusion, starting with v0.3.0 we provide our own source tarballs that include BLT.

v0.8.0
---------------------------------

* `Source Tarball <https://github.com/LLNL/conduit/releases/download/v0.8.0/conduit-v0.8.0-src-with-blt.tar.gz>`__

Highlights
++++++++++++++++++++++++++++++++++++

(Extracted from Conduit's :download:`Changelog <../../../CHANGELOG.md>`)


Added
~~~~~


* **General**

* Added ``setup.py`` for building and installing Conduit and its Python module via pip
* Added DataAccessor class that helps write generic algorithms that consume data arrays using expected types.
* Added support to register custom memory allocators and a custom data movement handler. This allows conduit to move trees of data between heterogenous memory spaces (e.g. CPU and GPU memory). See conduit_utils.hpp for API details.

* **Blueprint**

* Added ``conduit::blueprint::{mpi}::partition`` function that provides a general N-to-M partition capability for Blueprint Meshes. This helps with load balancing and other use cases, including fusing multi-domain data to simplifying post processing. This capability supports several options, see (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh_partition.html) for more details.
* Added a ``Table`` blueprint used to represent tables of numeric data. See (https://llnl-conduit.readthedocs.io/en/latest/blueprint_table.html) more details.
* Added ``conduit::blueprint::{mpi}::flatten`` which transforms Blueprint Meshes into Blueprint Tables. This transforms Mesh Blueprint data into a form that is more easily digestible in machine learning applications.
* Added ``conduit::blueprint::mpi::generate_partition_field``, which uses Parmetis to create a field that identifies how to load balance an input mesh elements. This field can be used as a Field selection input to ``conduit::blueprint::mpi::partition`` function.
* Added the``blueprint::mesh::examples::polychain`` example. It is an example of a polyhedral mesh. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polychain) for more details.
* Added a new function signature for ``blueprint::mesh::topology::unstructured::generate_sides``, which performs the same task as the original and also takes fields from the original topology and maps them onto the new topology.
* Added ``blueprint::mpi::mesh::to_polygonal``, which provides a MPI aware conversion Blueprint Structured AMR meshes to a Blueprint Polyhedral meshes.
* Added a host of ``conduit::blueprint::mpi::mesh::generate_*`` methods, which are the MPI parallel equivalents of the ``conduit::blueprint::mesh::topology::unstructured::generate_*`` functions.
* Added the ``conduit::blueprint::mpi::mesh::find_delegate_domain`` function, which returns a single delegate domain for the given mesh across MPI ranks (useful when all ranks need mesh information and some ranks can have empty meshes).
* Added check and transform functions for the newly-designated ``pairwise`` and ``maxshare`` variants of ``adjsets``. For more information, see the ``conduit::blueprint::mesh::adjset`` namespace.
* Added ``mesh::topology::unstructured::to_polytopal`` as an alias to ``mesh::topology::unstructured::to_polygonal``, to reflect that both polygonal and polyhedral are supported.
* Added ``conduit::blueprint::mpi::mesh::to_polytopal`` as an alias to ``conduit::blueprint::mpi::mesh::to_polygonal`` and ``conduit::blueprint::mpi::mesh::to_polyhedral``.

* **Relay**

* Added ``conduit::relay::io::hdf5_identifier_report`` methods, which create conduit nodes that describes active hdf5 resource handles.

Changed
~~~~~~~


* **General**

* Updated CMake logic to provide more robust Python detection and better support for HDF5 installs that were built with CMake.
* Improved Node::diff and Node::diff_compatible to show string values when strings differ.
* ``conduit::Node::print()`` and in Python Node ``repr`` and ``str`` now use ``to_summary_string()``. This reduces the output for large Nodes. Full output is still supported via ``to_string()``, ``to_yaml()``, etc methods.

* **Blueprint**

* The ``blueprint::mesh::examples::polytess`` function now takes a new argument, called ``nz``, which allows it to be extended into 3 dimensions. See Mesh Blueprint Examples docs (https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#polytess) for more details.
* Added support for both ``const`` and non-``const`` inputs to the ``conduit::blueprint::mesh::domains`` function.
* Improved mesh blueprint index generation logic (local and MPI) to support domains with different topos, fields, etc.
* Deprecated accepting ``npts_z !=0`` for 2D shape types in ``conduit::blueprint::mesh::examples::{braid,basic,grid}``. They issue a ``CONDUIT_INFO`` message when this detected and future versions will issue a ``CONDUIT_ERROR``.
* An empty Conduit Node is now considered a valid multi-domain mesh. This change was made to make serial uses cases better match sparse MPI multi-domain use cases. Existing code that relied ``mesh::verify`` to exclude empty Nodes will now need an extra check to see if an input mesh has data.
* Added MPI communicator argument to ``conduit::blueprint::mpi::mesh::to_polygonal`` and ``conduit::blueprint::mpi::mesh::to_polyhedral``.

* **Relay**

* Added CMake option (``ENABLE_RELAY_WEBSERVER``, default = ``ON``) to control if Conduit's Relay Web Server support is built. Down stream codes can check for support via header ifdef ``CONDUIT_RELAY_WEBSERVER_ENABLED`` or at runtime in ``conduit::relay::about``.
* Added support to compile against HDF5 1.12.

Fixed
~~~~~


* **General**

* Avoid compile issue with using ``_Pragma()`` with Python 3.8 on Windows
* ``conduit_node`` and ``conduit_datatype`` in the C API are no longer aliases to ``void`` so that callers cannot pass just any pointer to the APIs.
* Fixed memory over read issue with Fortran API due to int vs bool binding error. Fortran API still provides logical returns for methods like conduit_node_has_path() however the binding implementation now properly translates C_INT return codes into logical values.
* Fixed a subtle bug with Node fetch and Object role initialization.

* **Blueprint**

* Fixed a bug that was causing the ``conduit::blueprint::mesh::topology::unstructured::generate_*`` functions to produce bad results for polyhedral input topologies with heterogeneous elements (e.g. tets and hexs).
* Fixed a bug with ``conduit::relay::io::blueprint::write_mesh`` that undermined ``truncate=true`` option for root-only style output.
* Fixed options parsing bugs and improved error messages for the ``conduit_blueprint_verify`` exe.

* **Relay**

* Changed HDF5 offset support to use 64-bit unsigned integers for offsets, strides, and sizes.
* Fixed a bug with ``conduit::relay::mpi::io::blueprint::save_mesh`` where ``file_style=root_only`` could crash or truncate output files.
* Fixed a bug with inconsistent HDF5 handles being used in some cases when converting existing HDF5 Datasets from fixed to extendable.


v0.7.2
---------------------------------
Expand Down
48 changes: 3 additions & 45 deletions src/tests/relay/python/t_python_relay_mpi.py
Original file line number Diff line number Diff line change
@@ -1,48 +1,6 @@
###############################################################################
# Copyright (c) 2015-2020, Lawrence Livermore National Security, LLC.
#
# Produced at the Lawrence Livermore National Laboratory
#
# LLNL-CODE-716457
#
# All rights reserved.
#
# This file is part of Ascent.
#
# For details, see: http://ascent.readthedocs.io/.
#
# Please also read ascent/LICENSE
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the disclaimer below.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the disclaimer (as noted below) in the
# documentation and/or other materials provided with the distribution.
#
# * Neither the name of the LLNS/LLNL nor the names of its contributors may
# be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
# LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
###############################################################################


# Copyright (c) Lawrence Livermore National Security, LLC and other Conduit
# Project developers. See top-level LICENSE AND COPYRIGHT files for dates and
# other details. No copyright assignment is required to contribute to Conduit.
"""
file: t_python_relay_mpi.py
description: Unit tests for relay mpi
Expand Down

0 comments on commit 3d8359a

Please sign in to comment.