Skip to content

Commit 3dfd83c

Browse files
committed
prepare release of 1.14.1
1 parent 0bc7548 commit 3dfd83c

File tree

5 files changed

+133
-84
lines changed

5 files changed

+133
-84
lines changed

DEVELOPER_NOTES.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,23 @@
208208
the old version at runtime: set revision to 0, bump current and age.
209209
3. Programs may need to be changed, recompiled, and relinked in order to
210210
use the new version. Bump current, set revision and age to 0.
211+
212+
libtool Chapter 7.2 Libtool’s versioning system
213+
So, libtool library versions are described by three integers:
214+
215+
current
216+
The most recent interface number that this library implements.
217+
218+
revision
219+
The implementation number of the current interface.
220+
221+
age
222+
The difference between the newest and oldest interfaces that this
223+
library implements. In other words, the library implements all the
224+
interface numbers in the range from number current - age to current.
225+
226+
If two libraries have identical current and age numbers, then the dynamic
227+
linker chooses the library with the greater revision number.
211228
```
212229
---
213230
### Note on adding new MPI compiler candidates

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ Northwestern University and Argonne National Laboratory.
6060
* [Utility Programs](./src/utils#readme)
6161
* [NetCDF4 vs. PnetCDF](./doc/netcdf4_vs_pnetcdf.md)
6262
* PnetCDF [blocking vs. non-blocking APIs](./doc/blocking_vs_nonblocking.md)
63+
* [CDL header API references](./doc/cdl_api_guide.md)
6364

6465
### Mailing List
6566

RELEASE_NOTES

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,109 @@ PnetCDF Release Notes
66
Version _PNETCDF_VERSION_ (_PNETCDF_RELEASE_DATE_)
77
-------------------------------------
88

9+
* New optimization
10+
+ When file header extent size grows, moving the data section to a higher
11+
file offset has changed to be done in chunks of 16 MB per process.
12+
See [PR #174](https://github.com/Parallel-NetCDF/PnetCDF/pull/174),
13+
14+
* Configure options
15+
+ For PnetCDF developers, the requirement for libtool version has been
16+
changed to 2.5.4, due to an issue on Mac OS when using OpenMPI. See
17+
[Issue #155](https://github.com/Parallel-NetCDF/PnetCDF/issues/155),
18+
[Issue #163](https://github.com/Parallel-NetCDF/PnetCDF/issues/163),
19+
and [PR #164](https://github.com/Parallel-NetCDF/PnetCDF/pull/164).
20+
21+
* New APIs
22+
+ A set of APIs that read the header of a CDL file header and allow users to
23+
query the metadata defined in the CDL file. These APIs can be useful for
24+
creating a program (such as an I/O benchmark) based on an output netCDF
25+
file from another application (a CDL file can be generated by running the
26+
utility `ncmpidump/ncdump`). See
27+
[PR #177](https://github.com/Parallel-NetCDF/PnetCDF/pull/177).
28+
* `cdl_hdr_open()` opens and parses the CDL file's header
29+
* `cdl_hdr_inq_format()` returns file format version
30+
* `cdl_hdr_inq_ndims()` returns number of dimensions defined in CDL file
31+
* `cdl_hdr_inq_dim()` returns metadata of a dimension
32+
* `cdl_hdr_inq_nvars()` returns number of variables
33+
* `cdl_hdr_inq_var()` returns metadata of a variable defined in CDL file
34+
* `cdl_hdr_inq_nattrs()` returns number of attributes of a given variable
35+
* `cdl_hdr_inq_attr()` returns metadata of an attribute
36+
* `cdl_hdr_close()` closes the CDL file
37+
+ The CDL Header C Reference Manual is available in
38+
[cdl_api_guide.md](doc/cdl_api_guide.md). See
39+
[PR #184](https://github.com/Parallel-NetCDF/PnetCDF/pull/184).
40+
41+
* Bug fixes
42+
+ Fix setting of user hint nc_ibuf_size.
43+
See [PR #161](https://github.com/Parallel-NetCDF/PnetCDF/pull/161).
44+
45+
* New example programs
46+
+ examples/C/create_from_cdl.c shows how to call the new CDL header APIs to
47+
create a netCDF file with the same metadata.
48+
49+
* New programs for I/O benchmarks
50+
+ WRF-IO contains an extraction of the I/O kernel of WRF (Wether Research
51+
and Forecast Model, a weather prediction computer simulation program
52+
developed at NCAR) that can be used to evaluate the file I/O performance
53+
of WRF. It's data partitioning pattern is a 2D block-block checkerboard
54+
pattern, along the longitude and latitude.
55+
See [PR #165](https://github.com/Parallel-NetCDF/PnetCDF/pull/165)
56+
and [PR #181](https://github.com/Parallel-NetCDF/PnetCDF/pull/181).
57+
58+
* New test program
59+
+ test/cdf/tst_cdl_hdr_parser.c tests the new CDL header APIs.
60+
+ test/testcases/tst_grow_header.c tests header extent growth by re-entering
61+
the define mode multiple times and add more fix-sized and record variables.
62+
63+
* Clarifications about of PnetCDF hints
64+
+ There are three ways in PnetCDF for user to set hints to align the starting
65+
file offset for the data section (header extent) and record variable
66+
section.
67+
1. through a call to API `nc_header_align_size` by setting arguments of
68+
`h_minfree`, `v_align`, `v_minfree`, and `r_align`.
69+
2. through an MPI info object passed to calls of `ncmpi_create()` and
70+
`ncmpi_open()`. Hints are `nc_header_align_size`, `nc_var_align_size`,
71+
and `nc_record_align_size`.
72+
3. through a run-time environment variable `PNETCDF_HINTS`. Hints are
73+
`nc_header_align_size`, `nc_var_align_size`, and `nc_record_align_size`.
74+
+ As the same hints may be set by one or more of the above methods, PnetCDF
75+
implements the following hint precedence.
76+
* `PNETCDF_HINTS` > `ncmpi__enddef()` > `MPI info`.
77+
* 1st priority: hints set in the environment variable `PNETCDF_HINTS`, e.g.
78+
`PNETCDF_HINTS="nc_var_align_size=1048576"`. Making this the first
79+
priority is because it allows to run the same application executable
80+
without source code modification using different alignment settings
81+
through a run-time environment variable.
82+
* 2nd priority: hints set in the MPI info object passed to calls of
83+
`ncmpi_create()` and `ncmpi_open()`, e.g.
84+
`MPI_Info_set("nc_var_align_size", "1048576");`. The reasoning is when a
85+
3rd-party library built on top of PnetCDF implements its codes using
86+
'ncmpi__enddef'. An application that uses such 3rd-party library can pass
87+
an MPI info object to it, which further passes the info to PnetCDF. This
88+
precedence allows that application to exercise different hints without
89+
changing the 3rd-party library's source codes.
90+
* 3rd priority: hints used in the arguments of `ncmpi__enddef()`, e.g.
91+
`ncmpi__enddef(..., v_align=1048576,...)`.
92+
+ PnetCDF I/O hint `nc_header_align_size` is essentially the same as hint
93+
`nc_var_align_size`, but its name appears to be closer to the hint's
94+
intent, i.e. to reserve some space for the header growth in the future when
95+
new data objects are added. Please note when both hints are set, only hint
96+
`nc_var_align_size` will take effect and `nc_header_align_size` ignored.
97+
+ When there is no fix-sized variable (i.e. non-record variable) defined,
98+
argument `v_minfree` passed to `ncmpi__enddef()` is ignored. In this
99+
case, users should set `h_minfree`, if an extra header space is desired.
100+
+ When there is no fix-sized variables defined and none of hints
101+
`nc_header_align_size`, `nc_var_align_size`, or argument `v_align` is set,
102+
`nc_record_align_size` or `r_align`, if set, will be used to align the
103+
header extent.
104+
+ For the above update to the hint precedence, see
105+
PnetCDF See [PR #173](https://github.com/Parallel-NetCDF/PnetCDF/pull/173).
106+
107+
108+
-------------------------------------
109+
Version 1.14.0 (November 11, 2024)
110+
-------------------------------------
111+
9112
* New features
10113
+ Intra-node aggregation for write requests -- When the number of MPI
11114
processes allocated to a compute node is large, this feature can

configure.ac

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ dnl AC_REVISION([$Revision$])dnl
1515
dnl autoconf v2.70 and later is required. See https://github.com/Parallel-NetCDF/PnetCDF/issues/94
1616
dnl autoconf v2.70 was released in 2021-01-28
1717
AC_PREREQ([2.70])
18-
AC_INIT([PnetCDF],[1.14.0],[[email protected]],[pnetcdf],[https://parallel-netcdf.github.io])
18+
AC_INIT([PnetCDF], [1.14.1],
19+
20+
[pnetcdf],
21+
[https://parallel-netcdf.github.io])
1922

2023
dnl config.h.in will be created by autoreconf (autoheader)
2124
dnl call it right after AC_INIT, as suggested by autoconf
@@ -2643,7 +2646,7 @@ dnl Update the version information only immediately before a public release.
26432646
dnl PnetCDF starts with 1:0:0 (shared library is first supported in 1.9.0)
26442647
dnl because some package distributors, such as Debian, may have already built
26452648
dnl PnetCDF with shared libraries.
2646-
ABIVERSION="6:0:0"
2649+
ABIVERSION="7:0:0"
26472650
AC_SUBST(ABIVERSION)
26482651
if test "$enable_versioning" = "yes" ; then
26492652
ABIVERSIONFLAGS="-version-info \$(ABIVERSION)"

sneak_peek.md

Lines changed: 7 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,12 @@ This is essentially a placeholder for the next release note ...
66
+ none
77

88
* New optimization
9-
+ When file header extent size grows, moving the data section to a higher
10-
file offset has changed to be done in chunks of 16 MB per process.
11-
See [PR #174](https://github.com/Parallel-NetCDF/PnetCDF/pull/174),
9+
+ none
1210

1311
* New Limitations
1412
+ none
1513

1614
* Configure options
17-
+ For PnetCDF developers, the requirement for libtool version has been
18-
changed to 2.5.4, due to an issue on Mac OS when using OpenMPI. See
19-
[Issue #155](https://github.com/Parallel-NetCDF/PnetCDF/issues/155),
20-
[Issue #163](https://github.com/Parallel-NetCDF/PnetCDF/issues/163),
21-
and [PR #164](https://github.com/Parallel-NetCDF/PnetCDF/pull/164).
2215

2316
* Configure updates:
2417
+ none
@@ -27,24 +20,7 @@ This is essentially a placeholder for the next release note ...
2720
+ none
2821

2922
* New APIs
30-
+ A set of APIs that read the header of a CDL file header and allow users to
31-
query the metadata defined in the CDL file. These APIs can be useful for
32-
creating a program (such as an I/O benchmark) based on an output netCDF
33-
file from another application (a CDL file can be generated by running the
34-
utility `ncmpidump/ncdump`). See
35-
[PR #177](https://github.com/Parallel-NetCDF/PnetCDF/pull/177).
36-
* `cdl_hdr_open()` opens and parses the CDL file's header
37-
* `cdl_hdr_inq_format()` returns file format version
38-
* `cdl_hdr_inq_ndims()` returns number of dimensions defined in CDL file
39-
* `cdl_hdr_inq_dim()` returns metadata of a dimension
40-
* `cdl_hdr_inq_nvars()` returns number of variables
41-
* `cdl_hdr_inq_var()` returns metadata of a variable defined in CDL file
42-
* `cdl_hdr_inq_nattrs()` returns number of attributes of a given variable
43-
* `cdl_hdr_inq_attr()` returns metadata of an attribute
44-
* `cdl_hdr_close()` closes the CDL file
45-
+ The CDL Header C Reference Manual is available in
46-
[cdl_api_guide.md](doc/cdl_api_guide.md). See
47-
[PR #184](https://github.com/Parallel-NetCDF/PnetCDF/pull/184).
23+
+ none
4824

4925
* API syntax changes
5026
+ none
@@ -77,26 +53,16 @@ This is essentially a placeholder for the next release note ...
7753
+ none
7854

7955
* Bug fixes
80-
+ Fix setting of user hint nc_ibuf_size.
81-
See [PR #161](https://github.com/Parallel-NetCDF/PnetCDF/pull/161).
56+
+ none
8257

8358
* New example programs
84-
+ examples/C/create_from_cdl.c shows how to call the new CDL header APIs to
85-
create a netCDF file with the same metadata.
59+
+ none
8660

8761
* New programs for I/O benchmarks
88-
+ WRF-IO contains an extraction of the I/O kernel of WRF (Wether Research
89-
and Forecast Model, a weather prediction computer simulation program
90-
developed at NCAR) that can be used to evaluate the file I/O performance
91-
of WRF. It's data partitioning pattern is a 2D block-block checkerboard
92-
pattern, along the longitude and latitude.
93-
See [PR #165](https://github.com/Parallel-NetCDF/PnetCDF/pull/165)
94-
and [PR #181](https://github.com/Parallel-NetCDF/PnetCDF/pull/181).
62+
+ none
9563

9664
* New test program
97-
+ test/cdf/tst_cdl_hdr_parser.c tests the new CDL header APIs.
98-
+ test/testcases/tst_grow_header.c tests header extent growth by re-entering
99-
the define mode multiple times and add more fix-sized and record variables.
65+
+ none
10066

10167
* Issues with NetCDF library
10268
+ none
@@ -114,46 +80,5 @@ This is essentially a placeholder for the next release note ...
11480
+ none
11581

11682
* Clarifications about of PnetCDF hints
117-
+ There are three ways in PnetCDF for user to set hints to align the starting
118-
file offset for the data section (header extent) and record variable
119-
section.
120-
1. through a call to API `nc_header_align_size` by setting arguments of
121-
`h_minfree`, `v_align`, `v_minfree`, and `r_align`.
122-
2. through an MPI info object passed to calls of `ncmpi_create()` and
123-
`ncmpi_open()`. Hints are `nc_header_align_size`, `nc_var_align_size`,
124-
and `nc_record_align_size`.
125-
3. through a run-time environment variable `PNETCDF_HINTS`. Hints are
126-
`nc_header_align_size`, `nc_var_align_size`, and `nc_record_align_size`.
127-
+ As the same hints may be set by one or more of the above methods, PnetCDF
128-
implements the following hint precedence.
129-
* `PNETCDF_HINTS` > `ncmpi__enddef()` > `MPI info`.
130-
* 1st priority: hints set in the environment variable `PNETCDF_HINTS`, e.g.
131-
`PNETCDF_HINTS="nc_var_align_size=1048576"`. Making this the first
132-
priority is because it allows to run the same application executable
133-
without source code modification using different alignment settings
134-
through a run-time environment variable.
135-
* 2nd priority: hints set in the MPI info object passed to calls of
136-
`ncmpi_create()` and `ncmpi_open()`, e.g.
137-
`MPI_Info_set("nc_var_align_size", "1048576");`. The reasoning is when a
138-
3rd-party library built on top of PnetCDF implements its codes using
139-
'ncmpi__enddef'. An application that uses such 3rd-party library can pass
140-
an MPI info object to it, which further passes the info to PnetCDF. This
141-
precedence allows that application to exercise different hints without
142-
changing the 3rd-party library's source codes.
143-
* 3rd priority: hints used in the arguments of `ncmpi__enddef()`, e.g.
144-
`ncmpi__enddef(..., v_align=1048576,...)`.
145-
+ PnetCDF I/O hint `nc_header_align_size` is essentially the same as hint
146-
`nc_var_align_size`, but its name appears to be closer to the hint's
147-
intent, i.e. to reserve some space for the header growth in the future when
148-
new data objects are added. Please note when both hints are set, only hint
149-
`nc_var_align_size` will take effect and `nc_header_align_size` ignored.
150-
+ When there is no fix-sized variable (i.e. non-record variable) defined,
151-
argument `v_minfree` passed to `ncmpi__enddef()` is ignored. In this
152-
case, users should set `h_minfree`, if an extra header space is desired.
153-
+ When there is no fix-sized variables defined and none of hints
154-
`nc_header_align_size`, `nc_var_align_size`, or argument `v_align` is set,
155-
`nc_record_align_size` or `r_align`, if set, will be used to align the
156-
header extent.
157-
+ For the above update to the hint precedence, see
158-
PnetCDF See [PR #173](https://github.com/Parallel-NetCDF/PnetCDF/pull/173).
83+
+ none
15984

0 commit comments

Comments
 (0)