@@ -3,8 +3,8 @@ This is essentially a placeholder for the next release note ...
3
3
------------------------------------------------------------------------------
4
4
5
5
* New features
6
- + Flexible APIs now can be used as high-level APIs, when argument bufcount
7
- is NC_COUNT_IGNORE and buftype is an MPI predefined data type. See
6
+ + Flexible APIs now can be used as high-level APIs, when argument ` bufcount `
7
+ is ` NC_COUNT_IGNORE ` and ` buftype ` is an MPI predefined data type. See
8
8
[ PR #82 ] ( https://github.com/Parallel-NetCDF/PnetCDF/pull/82 ) . Below is an
9
9
example of writing from a memory buffer of type float.
10
10
```
@@ -36,26 +36,26 @@ This is essentially a placeholder for the next release note ...
36
36
See [PR #122](https://github.com/Parallel-NetCDF/PnetCDF/pull/122)
37
37
38
38
* Configure updates:
39
- + Upgrade config.guess config.sub to 2024-01-01.
39
+ + Upgrade ` config.guess` and ` config.sub` to 2024-01-01.
40
40
See [PR #116](https://github.com/Parallel-NetCDF/PnetCDF/pull/116)
41
41
+ FLASH-IO benchmark - add compile flag "-fallow-argument-mismatch" for GNU
42
42
Fortran 10 and later.
43
43
See [PR #114](https://github.com/Parallel-NetCDF/PnetCDF/pull/114)
44
- + Handle the case when MPICC env is not set and " --with-mpi" is not used.
45
- See commit 6142135.
46
- + Upgrade autotools version requirement to autoconf 2.71, automake 1.16.5, and
47
- libtool 2.4.6.
44
+ + Handle the case when MPICC environment variable is not set and ` --with-mpi`
45
+ is not used. See commit 6142135.
46
+ + Upgrade Autotools version requirement to autoconf 2.71, automake 1.16.5, and
47
+ libtool 2.4.6. (Note this change affects PnetCDF developers only.)
48
48
See [PR #95](https://github.com/Parallel-NetCDF/PnetCDF/pull/95)
49
49
Thanks to Blaise Bourdin for pointing out in
50
50
[Issue #94](https://github.com/Parallel-NetCDF/PnetCDF/issues/94)
51
51
that configure failed when using Intel OneAPI 2022.2.0 compilers. The fix
52
52
is to use autoconf 2.70 and newer.
53
53
54
54
* New constants
55
- + NC_COUNT_IGNORE - This is used in flexible APIs. When argument bufcount is
56
- NC_COUNT_IGNORE, buftype must be a predefine MPI datatype and the APIs
57
- operate as the high-level APIs. Fortran equivalents are NF_COUNT_IGNORE and
58
- NF90_COUNT_IGNORE.
55
+ + ` NC_COUNT_IGNORE` - This is used in flexible APIs. When argument ` bufcount`
56
+ is ` NC_COUNT_IGNORE`, ` buftype` must be a predefine MPI datatype and the
57
+ APIs operate as the high-level APIs. Fortran equivalents are
58
+ `NF_COUNT_IGNORE` and ` NF90_COUNT_IGNORE` .
59
59
60
60
* New APIs
61
61
+ none
@@ -64,13 +64,13 @@ This is essentially a placeholder for the next release note ...
64
64
+ none
65
65
66
66
* API semantics updates
67
- + File open flag NC_SHARE is now deprecated. It is still defined, but takes
67
+ + File open flag ` NC_SHARE` is now deprecated. It is still defined, but takes
68
68
no effect.
69
- + NC_SHARE alone is not sufficient to provide data consistency for accessing
69
+ + ` NC_SHARE` alone is not sufficient to provide data consistency for accessing
70
70
a shared file in parallel and thus is now deprecated. Because PnetCDF
71
71
follows the MPI file consistency, which only addresses the case when all
72
72
file accesses are relative to a specific file handle created from a
73
- collective open, NC_SHARE becomes invalid. See doc/README.consistency.md
73
+ collective open, ` NC_SHARE` becomes invalid. See doc/README.consistency.md
74
74
for more information.
75
75
76
76
* New error code precedence
@@ -83,7 +83,7 @@ This is essentially a placeholder for the next release note ...
83
83
+ none
84
84
85
85
* New PnetCDF hint
86
- + nc_header_collective -- to instruct PnetCDF to call MPI collective APIs to
86
+ + ` nc_header_collective` -- to instruct PnetCDF to call MPI collective APIs to
87
87
read and write the file header. The default is "false", meaning the file
88
88
header is only read/written by rank 0, using MPI independent read and write
89
89
APIs. When set to "true", collective APIs will be used with all other
@@ -97,7 +97,7 @@ This is essentially a placeholder for the next release note ...
97
97
+ none
98
98
99
99
* Updated utility program
100
- + ncvalidator - When the file size is larger and smaller than expected, the
100
+ + ` ncvalidator` - When the file size is larger and smaller than expected, the
101
101
file may still be a valid netCDF file.
102
102
* When larger, this can happen if opening an existing file that contains no
103
103
variable. Deleting a global attribute reduces the file header size. The
@@ -107,20 +107,24 @@ This is essentially a placeholder for the next release note ...
107
107
* When smaller, this can happen if the last variable is partially written.
108
108
The expected file size is calculated based on the full sizes of all
109
109
variables. The file is still a valid netCDF file.
110
- * In the former case, PR #99 changes ncvalidator to report a warning,
110
+ * In the former case, PR #99 changes ` ncvalidator` to report a warning,
111
111
rather than an error.
112
- + ncvalidator - Add printing of the dimension size of a variable when its
112
+ + ` ncvalidator` - Add printing of the dimension size of a variable when its
113
113
size is larger than the limitation allowed by the file format. See commit
114
114
5584d44.
115
115
+ Add file src/utils/README.md which gives short descriptions of the utility
116
116
programs and collapsible bullets to display their manual pages.
117
117
118
118
* Other updates:
119
- + File stripe size is no longer used to set the size of file header extent.
120
- Automatically set the size of file header extent using the file striping
121
- size obtained from MPI-IO hint 'striping_unit' may yield an unexpectedly
122
- large file header extent and cause movement of data sections if new
123
- metadata is added when the program re-enter the define mode.
119
+ + Since version 1.1.0, PnetCDF has been using file striping size, if
120
+ obtainable from hint `striping_unit` set by users or MPI-IO underneath, to
121
+ align the starting file offset of data section. This offset is also
122
+ referred to as the file header extent, which can be larger than the header
123
+ size to allow header to grow if new data objects are added. Starting from
124
+ this release of 1.13.0, file stripe size is no longer used for this
125
+ purpose. This is because automatically setting file header extent using the
126
+ file striping size may yield an unexpectedly large file header extent and
127
+ cause movement of data sections if new metadata is added.
124
128
See [PR #124](https://github.com/Parallel-NetCDF/PnetCDF/pull/124) and
125
129
[PR #125](https://github.com/Parallel-NetCDF/PnetCDF/pull/125).
126
130
+ Use unsigned int to do byte swap.
@@ -142,14 +146,17 @@ This is essentially a placeholder for the next release note ...
142
146
See [PR #79](https://github.com/Parallel-NetCDF/PnetCDF/pull/79).
143
147
144
148
* Bug fixes
145
- + Fix Fortran APIs internal call to nfmpi_inq_buffer_size.
149
+ + Fix residual values of `v_align` and `r_align` when re-entering the define
150
+ mode multiple times.
151
+ See [PR #126](https://github.com/Parallel-NetCDF/PnetCDF/pull/126).
152
+ + Fix Fortran APIs internal call to `nfmpi_inq_buffer_size`.
146
153
See [PR #111](https://github.com/Parallel-NetCDF/PnetCDF/pull/111).
147
- + Fix ncmpi_inq_num_rec_vars and ncmpi_inq_num_fix_vars when opening an
148
- existing file. See
154
+ + Fix ` ncmpi_inq_num_rec_vars()` and ` ncmpi_inq_num_fix_vars()` when opening
155
+ an existing file. See
149
156
[PR #103](https://github.com/Parallel-NetCDF/PnetCDF/pull/103).
150
- + ncmpidiff - when checking the dimensions defined in the second files
157
+ + ` ncmpidiff` - when checking the dimensions defined in the second files
151
158
whether they are defined in the first file. See 88cd9c1.
152
- + Use Fortran subroutine Get_Environment_Variable instead of getenv.
159
+ + Use Fortran subroutine ` Get_Environment_Variable` instead of ` getenv` .
153
160
See commit a0b8aca, b796759.
154
161
155
162
* New example programs
@@ -159,19 +166,20 @@ This is essentially a placeholder for the next release note ...
159
166
+ none
160
167
161
168
* New test program
162
- + test/testcases/tst_redefine.c - test multiple entries of ncmpi__enddef
169
+ + test/testcases/tst_redefine.c - test multiple entries of ` ncmpi__enddef`
163
170
[PR #126](https://github.com/Parallel-NetCDF/PnetCDF/pull/126).
164
- + test/testcases/tst_symlink.c - test NC_CLOBBER on a symbolic link.
171
+ + test/testcases/tst_symlink.c - test ` NC_CLOBBER` on a symbolic link.
165
172
+ test/testcases/tst_del_attr.c - test delete attributes. See
166
173
[PR #99](https://github.com/Parallel-NetCDF/PnetCDF/pull/99).
167
- + test/testcases/test_get_varn.c - test get_varn API. See
174
+ + test/testcases/test_get_varn.c - test ` get_varn` API. See
168
175
[PR #90](https://github.com/Parallel-NetCDF/PnetCDF/pull/90).
169
176
+ test/testcases/flexible_var.c - test flexible var API
170
- + test/testcases/flexible_api.f - test flexible API when bufcount == -1
177
+ + test/testcases/flexible_api.f - test flexible API when ` bufcount == -1`
171
178
+ test/testcases/scalar.c - add tests for scalar variables using nonblocking
172
179
APIs. See commit 07ff7b1
173
180
+ test/nonblocking/test_bputf.f90, test/nonblocking/test_bputf77.f -
174
- add tests of APIs inq_buffer_usage and inq_buffer_size. See commit 94ce438
181
+ add tests of APIs `inq_buffer_usage` and `inq_buffer_size`.
182
+ See commit 94ce438
175
183
176
184
* Issues with NetCDF library
177
185
+ none
@@ -189,18 +197,24 @@ This is essentially a placeholder for the next release note ...
189
197
+ none
190
198
191
199
* Clarifications
192
- + Hints nc_header_align_size, nc_var_align_size, and nc_record_align_size are
193
- to align the file header extent, starting file offsets of data section, and
194
- record variable section, respectively. Note that nc_var_align_size and
195
- nc_record_align_siz are not to align individual variables. They are
196
- equivalent to arguments v_align and r_align, respevtively in API
197
- ncmpi__enddef().
198
- + Using NC_CLOBBER in ncmpi_create() can be expensive if the file already
200
+ + Hints `nc_header_align_size` and `nc_record_align_size` are to align the
201
+ file header extent and starting file offset of the record variable section,
202
+ respectively. Hint `nc_record_align_size` is not to align the offsets of
203
+ individual record variables.
204
+ + Prior to version 1.13.0, hint `nc_var_align_size` is used to align the
205
+ starting file offsets of individual fixed-size variables. Beginning from
206
+ version 1.13.0, this hint is used to align only the starting file offset of
207
+ the entire data section, not individual variables. The reason of such
208
+ change is because PnetCDF nonblocking APIs can aggregate multiple I/O
209
+ requests and MPI-IO today has been optimized to align I/O to file striping
210
+ boundaries, which makes aligning starting offsets of individual variables
211
+ less effective and may create empty space in the file.
212
+ + Using `NC_CLOBBER` in `ncmpi_create()` can be expensive if the file already
199
213
exists. If the existing file is a regular file, then PnetCDF will delete it
200
- with a call to unlink() first and re-created it later. Calling unlink() on
214
+ with a call to ` unlink()` first and re-created it later. Calling ` unlink()` on
201
215
may be expensive for some parallel file systems. If the existing file is a
202
- symbolic link, then PnetCDF will call truncate() or MPI_File_set_size() to
203
- truncate the file size to zero. Calling truncate() may also be very
216
+ symbolic link, then PnetCDF will call ` truncate()` or ` MPI_File_set_size()` to
217
+ truncate the file size to zero. Calling ` truncate()` may also be very
204
218
expensive on some file systems, e.g. Lustre. Sporadically a long time spent
205
- on unlink() and truncate() was observed on Perlmutter.
219
+ on ` unlink()` and ` truncate()` was observed on Perlmutter.
206
220
0 commit comments