Skip to content

Commit 4ea2f83

Browse files
committed
release of PnetCDF 1.14.1
1 parent 9dec657 commit 4ea2f83

File tree

4 files changed

+109
-1
lines changed

4 files changed

+109
-1
lines changed

Release/pnetcdf-1.14.1.tar.gz

2.4 MB
Binary file not shown.

Release_notes/1.14.1.md

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

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ <h1>PnetCDF: A Parallel I/O Library for NetCDF File Access</h1>
3232

3333
<h2 id="News">News</h2>
3434
<ul>
35+
<li><strong>July 31, 2025</strong>: Release of PnetCDF 1.14.1 is available.</li>
3536
<li><strong>November 12, 2024</strong>: <a href=https://github.com/Parallel-NetCDF/PnetCDF-Python>PnetCDF-Python</a> package 1.0.0 is released.</li>
36-
<li><strong>November 11, 2024</strong>: Release of PnetCDF 1.14.0 is available.</li>
3737
<li>Starting from version <a href="https://github.com/Unidata/netcdf-c/blob/v4.4.0/RELEASE_NOTES.md">
3838
4.4.0</a>, the NetCDF library developed at Unidata supports the CDF-5 file
3939
format for both sequential and parallel file access.</li>

wiki/Download.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@
5454
<th>Size</th>
5555
<th>SHA-1 Checksum</th>
5656
</tr>
57+
<tr>
58+
<td align=center>July 31, 2025</td>
59+
<td align=center><a href=https://github.com/Parallel-NetCDF/Parallel-NetCDF.github.io/blob/master/Release_notes/1.14.1.md>1.14.1</a></td>
60+
<td><a href="../Release/pnetcdf-1.14.1.tar.gz" onClick="var that=this; ga('send', 'event', 'PnetCDF', 'Source Download (GZ)', 'pnetcdf-1.14.1.tar.gz', 1); ga('pnetcdfTracker.send', 'event', 'PnetCDF', 'Source Download (GZ)', 'pnetcdf-1.14.1.tar.gz', 1); ga('parallelnetcdfTracker.send', 'event', 'PnetCDF', 'Source Download (GZ)', 'pnetcdf-1.14.1.tar.gz', 1); setTimeout(function(){location.href=that.href;},500); return false;">pnetcdf-1.14.1.tar.gz</a></td>
61+
<td>2.4 MB</td>
62+
<td>ed59e4323d7ea7263d0ee057350b86ede900ec1d</td>
63+
</tr>
5764
<tr>
5865
<td align=center>November 11, 2024</td>
5966
<td align=center><a href=https://github.com/Parallel-NetCDF/Parallel-NetCDF.github.io/blob/master/Release_notes/1.14.0.md>1.14.0</a></td>

0 commit comments

Comments
 (0)