|
| 1 | +[PnetCDF](https://parallel-netcdf.github.io) Version 1.14.0 Release Notes (November 11, 2024) |
| 2 | +------------------------------------------------------------------------------ |
| 3 | + |
| 4 | +* New features |
| 5 | + + Intra-node aggregation for write requests -- When the number of MPI |
| 6 | + processes allocated to a compute node is large, this feature can |
| 7 | + effectively reduce the communication congestion caused by an overwhelming |
| 8 | + large number of asynchronous messages posted during the collective write |
| 9 | + of MPI-IO. This new feature can be enabled by setting the PnetCDF I/O hint |
| 10 | + 'nc_num_aggrs_per_node' to the desired number of aggregators per compute |
| 11 | + node. The non-aggregators send their requests to the assigned aggregators, |
| 12 | + and then the aggregators make aggregated requests to the file. |
| 13 | + [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). |
| 14 | + + Support MPI derived data types that are constructed from the large-count |
| 15 | + derived datatype constructors introduced in MPI 4.0. |
| 16 | + [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). |
| 17 | + |
| 18 | +* New optimization |
| 19 | + + When running sequentially (i.e. number of processes is 1), PnetCDF calls |
| 20 | + the MPI independent I/O functions and avoids calls to MPI_Barrier, |
| 21 | + MPI_Bcast, and MPI_Allreduce. |
| 22 | + [PR #149](https://github.com/Parallel-NetCDF/PnetCDF/pull/149). |
| 23 | + |
| 24 | +* Configure options changed |
| 25 | + + The default has been changed to build both shared and static libraries. |
| 26 | + [PR #143](https://github.com/Parallel-NetCDF/PnetCDF/pull/143). |
| 27 | + |
| 28 | +* Configure updates: |
| 29 | + + Fix `pnetcdf-config` of reflecting the installation path when installation |
| 30 | + is done by running command `make install DESTDIR=/alternate/directory` |
| 31 | + which prepends '/alternate/directory' before all installation names. |
| 32 | + [PR #154](https://github.com/Parallel-NetCDF/PnetCDF/pull/154). |
| 33 | + |
| 34 | +* New constants |
| 35 | + + A new C macro `NC_FillValue` replaces `_FillValue` and thus `_FillValue` is |
| 36 | + now deprecated This conforms with NetCDF4's change in its version 4.9.3 |
| 37 | + release. [PR #153](https://github.com/Parallel-NetCDF/PnetCDF/pull/153). |
| 38 | + |
| 39 | +* New PnetCDF hints |
| 40 | + + 'nc_num_aggrs_per_node' -- To enable the intra-node aggregation, this I/O |
| 41 | + hint can set to a positive integral value, which indicates the desired |
| 42 | + number of processes per compute node to be selected as the aggregators. |
| 43 | + Setting it to 0 disables the aggregation, which is also the default mode. |
| 44 | + [PR #156](https://github.com/Parallel-NetCDF/PnetCDF/pull/156). |
| 45 | + |
| 46 | +* Build recipes |
| 47 | + + When using OpenMPI on Mac OSX, a link error may appear. The work around is |
| 48 | + to add `LDFLAGS=-ld_classic` into the configure command line. Thanks to |
| 49 | + Rui Chen for reporting and provide the solution. |
| 50 | + [Issue #139](https://github.com/Parallel-NetCDF/PnetCDF/issues/139). |
| 51 | + |
| 52 | +* Updated utility programs |
| 53 | + + none |
| 54 | + |
| 55 | +* Other updates: |
| 56 | + + More document for comparing PnetCDF and NetCDF4 has been added to file |
| 57 | + doc/netcdf4_vs_pnetcdf.md |
| 58 | + [PR #152](https://github.com/Parallel-NetCDF/PnetCDF/pull/152) and |
| 59 | + [PR #140](https://github.com/Parallel-NetCDF/PnetCDF/pull/140). |
| 60 | + |
| 61 | +* New example programs |
| 62 | + + C/flexible_bottom.c and C/vard_bottom.c - These two examples construct MPI |
| 63 | + derived data types using absolute memory addresses first and use MPI_BOTTOM |
| 64 | + when calling the PnetCDF flexible APIs. |
| 65 | + |
| 66 | +* New programs for I/O benchmarks |
| 67 | + + C/pnetcdf_put_vara.c -- |
| 68 | + * This program writes a series of 3D variables with 2D block-block |
| 69 | + partitioning pattern. Each variable is a record variable. |
| 70 | + [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). |
| 71 | + + C/netcdf_put_vara.c -- |
| 72 | + * This sequential NetCDF-C program writes a series of 3D variables. Each |
| 73 | + variable is a record variable. |
| 74 | + * This program and `C/pnetcdf_put_vara.c` can be used to compare the |
| 75 | + performance of NetCDF and PnetCDF when running sequentially, i.e. one |
| 76 | + process. |
| 77 | + [PR #150](https://github.com/Parallel-NetCDF/PnetCDF/pull/150). |
| 78 | + |
| 79 | +* New test program |
| 80 | + + test/testcases/flexible_large_count.c - tests flexible APIs that use MPI |
| 81 | + derived datatypes created by MPI large-count datatype constructors. |
| 82 | + [PR #145](https://github.com/Parallel-NetCDF/PnetCDF/pull/145). |
| 83 | + |
| 84 | + |
0 commit comments