-
Notifications
You must be signed in to change notification settings - Fork 0
/
sneak_peek
134 lines (108 loc) · 5.24 KB
/
sneak_peek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
------------------------------------------------------------------------------
This is essentially a placeholder for the next release note ...
------------------------------------------------------------------------------
o New features
* none
o New optimization
* none
o New Limitations
* none
o Update configure options
* Option in-place byte-swap is expanded into the followings.
--enable-in-place-swap : perform byte swap on user I/O buffers whenever
possible. This option results in the least amount of internal memory
usage. However, if an immutable user buffer is used, segmentation fault
may occur when byte swap is performed on user buffer in place.
--disable-in-place-swap : when byte swap is required, an internal memory
space will be allocated for byte swap without altering the contents of
user buffer. This option will increase internal memory footprint.
default (neither the above option is used at the command line): an
internal buffer is allocated for byte swap only when the I/O request size
is less than 4 KiB. For larger requests, user buffers are used for
in-place byte swap.
The mode can also be changed at the run time by setting the PnetCDF hint
nc_in_place_swap. See New hints below for more info.
Note -in-place-swap option only affect applications running on Little
Endian machines, as no byte swap is necessary on Big Endian machines.
o New constants
* none
o New APIs
* none
o API syntax changes
* none
o API semantics updates
* ncmpi_put_vard and ncmpi_get_vard APIs
1. Now allow to write and read two or more consecutive variables in a
single API call. In this case, argument varid will be the ID of first
variable. Argument filetype should be constructed by using the
relative distance between any two consecutive variables. See example
program examples/C/vard_mvars.c.
2. When argument filetype is MPI_DATATYPE_NULL, the request is considered
a zero-length request.
o New error code precedence
* none
o Updated error strings
* none
o New error code
* none
o New PnetCDF hint
* nc_in_place_swap -- to enable or disable in-place byte swap on Little
Endian architectures. The default mode is auto. See in-place byte-swap
option above for descriptions of the three modes. Below is an example
that changes the mode set at the configure time to "enable", by setting
the environment variable PNETCDF_HINTS with command:
export PNETCDF_HINTS="nc_in_place_swap=enable"
o New run-time environment variables
* none
o New build recipe
* none
o New/updated utility program
* ncvalidator adds a new option -t to turn on tracing mode which prints all
successfully validated metadata till the first error encountered.
* ncvalidator adds a check to detect whether there are two or more
unlimited dimensions defined in the file and, if yes, reports error code
NC_EUNLIMIT.
o Other updates:
* Add a check for NC_EUNLIMIT in API ncmpi_open to detect whether two or
more unlimited dimensions are defined in a corrupted file.
o Bug fixes
* Fix the calculation of new record number in put_vard API. Thanks to
Jim Edwards. See r3675.
* Fix the calculation of growing size of nonblocking request queues to
include the number of records of a record variable, as such request is
split into multiple additional requests, one for each record. See r3651.
* Remove freeing name object because NC_ENULLPAD is not a fatal error. See
r3644. This bug only appears when --enable-null-byte-header-padding is
set at configure time and opening files whose headers are not padded with
null bytes.
* Member "value" of NC_dimarray, NC_attrarray, and NC_vararray can still be
NULL when a corrupted tag of NC_DIMENSION, NC_ATTRIBUTE, or NC_VARIABLE
is read from files. Add a check against NULL before freeing it. This bug
only appears when reading files with corrupted NC tags. See r3645.
o New example programs
* example/C/vard_mvars.c shows an example of using a single vard API call
to write or read two consecutive variables.
o New programs for I/O benchmarks
* none
o New test program
* test/testcase/test_vard_rec.c - tests ncmpi_put_vard APIs for writing a
record variable with one record at a time. This is to test the fix to
bug reported by Jim Edwards in r3675.
* test/nonblocking/large_num_reqs.c - tests large number of nonblocking put
and get requests (larger than NC_REQUEST_CHUNK, the constant used to grow
the internal queues that store the nonblocking put and get requests. This
is to test bug fix in r3651.
* test/testcases/tst_def_var_fill.c - tests API ncmpi_def_var_fill and
verifies fill values when fill mode is turned on and off.
* src/utils/ncvalidator/tst_open.c - tests API ncmpi_open against corrupted
files and checks expected error codes.
o Conformity with NetCDF library
* none
o Conflict with NetCDF library
* none
o Issues related to MPI library vendors:
* none
o Issues related to Darshan library:
* none
o Clarifications
* none