From 9c403de09381d06aed9443012e96ca221ea9e9b1 Mon Sep 17 00:00:00 2001 From: wkliao Date: Thu, 7 Nov 2024 16:35:48 -0600 Subject: [PATCH] update version number to 1.14.0 * Move contents of sneak_peek.md to RELEASE_NOTES --- RELEASE_NOTES | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 4 +-- sneak_peek.md | 62 ++++++------------------------------- 3 files changed, 97 insertions(+), 54 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 36cb6eb94..09c24e6b4 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -6,6 +6,91 @@ PnetCDF Release Notes Version _PNETCDF_VERSION_ (_PNETCDF_RELEASE_DATE_) ------------------------------------- +* New features + + Intra-node aggregation for write requests -- When the number of MPI + processes allocated to a compute node is large, this feature can + effectively reduce the communication congestion caused by an overwhelming + large number of asynchronous messages posted during the collective write + of MPI-IO. This new feature can be enabled by setting the PnetCDF I/O hint + 'nc_num_aggrs_per_node' to the desired number of aggregators per compute + node. The non-aggregators send their requests to the assigned aggregators, + and then the aggregators make aggregated requests to the file. + [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). + + Support MPI derived data types that are constructed from the large-count + derived datatype constructors introduced in MPI 4.0. + [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). + +* New optimization + + When running sequentially (i.e. number of processes is 1), PnetCDF calls + the MPI independent I/O functions and avoids calls to MPI_Barrier, + MPI_Bcast, and MPI_Allreduce. + [PR #149](https://github.com/Parallel-NetCDF/PnetCDF/pull/149). + +* Configure options changed + + The default has been changed to build both shared and static libraries. + [PR #143](https://github.com/Parallel-NetCDF/PnetCDF/pull/143). + +* Configure updates: + + Fix `pnetcdf-config` of reflecting the installation path when installation + is done by running command `make install DESTDIR=/alternate/directory` + which prepends '/alternate/directory' before all installation names. + [PR #154](https://github.com/Parallel-NetCDF/PnetCDF/pull/154). + +* New constants + + A new C macro `NC_FillValue` replaces `_FillValue` and thus `_FillValue` is + now deprecated This conforms with NetCDF4's change in its version 4.9.3 + release. [PR #153](https://github.com/Parallel-NetCDF/PnetCDF/pull/153). + +* New PnetCDF hints + + 'nc_num_aggrs_per_node' -- To enable the intra-node aggregation, this I/O + hint can set to a positive integral value, which indicates the desired + number of processes per compute node to be selected as the aggregators. + Setting it to 0 disables the aggregation, which is also the default mode. + [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). + +* Build recipes + + When using OpenMPI on Mac OSX, a link error may appear. The work around is + to add `LDFLAGS=-ld_classic` into the configure command line. Thanks to + Rui Chen for reporting and provide the solution. + [Issue #139](https://github.com/Parallel-NetCDF/PnetCDF/issues/139). + +* Updated utility programs + + none + +* Other updates: + + More document for comparing PnetCDF and NetCDF4 has been added to file + doc/netcdf4_vs_pnetcdf.md + [PR #152](https://github.com/Parallel-NetCDF/PnetCDF/pull/152) and + [PR #140](https://github.com/Parallel-NetCDF/PnetCDF/pull/140). + +* New example programs + + C/flexible_bottom.c and C/vard_bottom.c - These two examples construct MPI + derived data types using absolute memory addresses first and use MPI_BOTTOM + when calling the PnetCDF flexible APIs. + +* New programs for I/O benchmarks + + C/pnetcdf_put_vara.c -- + * This program writes a series of 3D variables with 2D block-block + partitioning pattern. Each variable is a record variable. + [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). + + C/netcdf_put_vara.c -- + * This sequential NetCDF-C program writes a series of 3D variables. Each + variable is a record variable. + * This program and `C/pnetcdf_put_vara.c` can be used to compare the + performance of NetCDF and PnetCDF when running sequentially, i.e. one + process. + [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). + +* New test program + + test/testcases/flexible_large_count.c - tests flexible APIs that use MPI + derived datatypes created by MPI large-count datatype constructors. + [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). + + +------------------------------------- +Version 1.13.0 (March 29, 2024) +------------------------------------- + * New features + A single read/write request made by an MPI process is now allowed to be of size larger than 2 GiB. Such large requests will be passed to the MP-IO diff --git a/configure.ac b/configure.ac index 4e105cdd8..c911cc7b5 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl AC_REVISION([$Revision$])dnl dnl autoconf v2.70 and later is required. See https://github.com/Parallel-NetCDF/PnetCDF/issues/94 dnl autoconf v2.70 was released in 2021-01-28 AC_PREREQ([2.70]) -AC_INIT([PnetCDF],[1.13.0],[parallel-netcdf@mcs.anl.gov],[pnetcdf],[https://parallel-netcdf.github.io]) +AC_INIT([PnetCDF],[1.14.0],[parallel-netcdf@mcs.anl.gov],[pnetcdf],[https://parallel-netcdf.github.io]) dnl config.h.in will be created by autoreconf (autoheader) dnl call it right after AC_INIT, as suggested by autoconf @@ -2641,7 +2641,7 @@ dnl Update the version information only immediately before a public release. dnl PnetCDF starts with 1:0:0 (shared library is first supported in 1.9.0) dnl because some package distributors, such as Debian, may have already built dnl PnetCDF with shared libraries. -ABIVERSION="5:0:0" +ABIVERSION="6:0:0" AC_SUBST(ABIVERSION) if test "$enable_versioning" = "yes" ; then ABIVERSIONFLAGS="-version-info \$(ABIVERSION)" diff --git a/sneak_peek.md b/sneak_peek.md index aac55cdcb..90fd19102 100644 --- a/sneak_peek.md +++ b/sneak_peek.md @@ -3,43 +3,22 @@ This is essentially a placeholder for the next release note ... ------------------------------------------------------------------------------ * New features - + Intra-node aggregation for write requests -- When the number of MPI - processes allocated to a compute node is large, this feature selects a - subset of processes per node to be an I/O aggregator. The non-aggregators - send their requests to the assigned aggregators, and then the aggregators - make aggregated requests to the file. This feature can effectively reduce - communication congestion due to too many pending asynchronous messages - produced in the collective write inside of MPI-IO. This new feature can be - enabled by setting the PnetCDF I/O hint 'nc_num_aggrs_per_node' to the - desired number of aggregators per compute node. - See [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). - + Support MPI derived data types that are constructed from the large-count - derived datatype constructors introduced in MPI 4.0. - See [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). + + none * New optimization - + When running sequentially (i.e. number of processes is 1), PnetCDF calls - the MPI independent I/O functions and avoids calls to MPI_Barrier, - MPI_Bcast, and MPI_Allreduce. - See [PR #149](https://github.com/Parallel-NetCDF/PnetCDF/pull/149). + + none * New Limitations + none * Configure options - + The default has been changed to build both shared and static libraries. - See [PR #143](https://github.com/Parallel-NetCDF/PnetCDF/pull/143). + + none * Configure updates: - + Fix `pnetcdf-config` of reflecting the installation path when installation - is done by running command `make install DESTDIR=/alternate/directory` - which prepends '/alternate/directory' before all installation names. - See [PR #154](https://github.com/Parallel-NetCDF/PnetCDF/pull/154). + + none * New constants - + A new C macro `NC_FillValue` replaces `_FillValue` and thus `_FillValue` is - now deprecated This conforms with NetCDF4's change in its version 4.9.3 - release. See [PR #153](https://github.com/Parallel-NetCDF/PnetCDF/pull/153). + + none * New APIs + none @@ -60,11 +39,7 @@ This is essentially a placeholder for the next release note ... + none * New PnetCDF hints - + 'nc_num_aggrs_per_node' -- To enable the intra-node aggregation, this I/O - hint can set to a positive integral value, which indicates the desired - number of processes per compute node to be selected as the aggregators. - Setting it to 0 disables the aggregation, which is also the default mode. - See [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). + + none * New run-time environment variables + none @@ -76,36 +51,19 @@ This is essentially a placeholder for the next release note ... + none * Other updates: - + More document for comparing PnetCDF and NetCDF4 has been added to file - doc/netcdf4_vs_pnetcdf.md - See [PR #152](https://github.com/Parallel-NetCDF/PnetCDF/pull/152) and - [PR #140](https://github.com/Parallel-NetCDF/PnetCDF/pull/140). + + none * Bug fixes + * New example programs - + C/flexible_bottom.c and C/vard_bottom.c - These two examples construct MPI - derived data types using absolute memory addresses first and use MPI_BOTTOM - when calling the PnetCDF flexible APIs. + + none * New programs for I/O benchmarks - + C/pnetcdf_put_vara.c -- - * This program writes a series of 3D variables with 2D block-block - partitioning pattern. Each variable is a record variable. - See [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). - + C/netcdf_put_vara.c -- - * This sequential NetCDF-C program writes a series of 3D variables. Each - variable is a record variable. - * This program and `C/pnetcdf_put_vara.c` can be used to compare the - performance of NetCDF and PnetCDF when running sequentially, i.e. one - process. - See [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). + + none * New test program - + test/testcases/flexible_large_count.c - tests flexible APIs that use MPI - derived datatypes created by MPI large-count datatype constructors. - See [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). + + none * Issues with NetCDF library + none