Skip to content

Commit f4fd3c2

Browse files
committed
update path of examples/nonblocking
1 parent 2e4f05f commit f4fd3c2

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

docs/nc4_vs_pnetcdf.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@
8989
`put/get` requests and each of them has a small amount. PnetCDF tries to
9090
aggregate and coalesce multiple registered nonblocking requests into a large
9191
one, because I/O usually performs better when the request amounts are large
92-
and contiguous. [nonblocking_write.py](../examples/nonblocking_write.py) is
93-
an example that makes use of nonblocking APIs.
92+
and contiguous. See an example program in
93+
[nonblocking_write.py](../examples/nonblocking/nonblocking_write.py).
9494
* Table below shows the difference in python programming between using blocking
9595
and nonblocking APIs.
9696

docs/source/tutorial/compare_netcdf4.rst

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,54 @@ Comparing with netCDF4-python API
44
=================================
55
.. warning::
66

7-
Under construction.
7+
Under construction.
88

9-
PnetCDF-python inherits many features from netCDF4-python, making the transition from the former to the latter a seamless process
10-
for most netCDF4-python applications. However, there are some exceptions to this as listed below. On the other hand, PnetCDF-python supports
11-
some new APIs not available in netCDF4-python.
9+
PnetCDF-python inherits many features from netCDF4-python, making the transition from the former to the latter a seamless process
10+
for most netCDF4-python applications. However, there are some exceptions to this as listed below. On the other hand, PnetCDF-python supports
11+
some new APIs not available in netCDF4-python.
1212

1313
Supported File Formats
1414
--------------------------
1515

1616
NetCDF4-python supports NETCDF4 formats(HDF5) in addition to classic netCDF formats(NETCDF3_CLASSIC, NETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA). However,
17-
PnetCDF-python library only supports netCDF classic file formats, which means all netCDF4-dependent features are **not** supported, including user-defined types,
17+
PnetCDF-python library only supports netCDF classic file formats, which means all netCDF4-dependent features are **not** supported, including user-defined types,
1818
compression, hirarchical structure, etc.
1919

2020
Difference in Programming Model
2121
--------------------------------
2222

2323
Data/Define Mode
24-
NetCDF4-python library automatically switches between data and define mode for the user by calling ``redef`` and ``enddef`` internally within the define-mode
25-
operation functions, which is **not** implemented in Pnetcdf-python. A manual call to :meth:`File.redef` is compulsory to activate define mode before swtiching
26-
to define mode opearations, following the C library convention. Similarly, :meth:`File.enddef` is required before switching to data mode operations. This design is based on considerations of
24+
NetCDF4-python library automatically switches between data and define mode for the user by calling ``redef`` and ``enddef`` internally within the define-mode
25+
operation functions, which is **not** implemented in Pnetcdf-python. A manual call to :meth:`File.redef` is compulsory to activate define mode before swtiching
26+
to define mode opearations, following the C library convention. Similarly, :meth:`File.enddef` is required before switching to data mode operations. This design is based on considerations of
2727
the following aspects:
2828

29-
- Minimize overheads during consecutive define operations: Automatically wrapping all define functions with :meth:`File.redef` and :meth:`File.enddef` could introduce
29+
- Minimize overheads during consecutive define operations: Automatically wrapping all define functions with :meth:`File.redef` and :meth:`File.enddef` could introduce
3030
significant overhead between consecutive define operations. This approach results in unnecessary data/define mode switches, impacting performance.
31-
- Avoid potential hanging when performing independent I/O: if :meth:`File.enddef` is automatically embeded in all data mode operation functions, the program will hang when
31+
- Avoid potential hanging when performing independent I/O: if :meth:`File.enddef` is automatically embeded in all data mode operation functions, the program will hang when
3232
partial processes are performing independent I/O(while others don't) because :meth:`File.enddef` is a collective call which requires all processes to participate.
3333

3434
Independent/Collective I/O Mode
3535
There are two types of parallel I/O, independent I/O and collective I/O supported both in PnetCDF-python and netCDF4-python. NetCDF4-python toggles back and forth
36-
between the two types at variable-level. However, PnetCDF-python manages this at file-level through :meth:`File.begin_indep` and :meth:`File.end_indep`. The default I/O mode
36+
between the two types at variable-level. However, PnetCDF-python manages this at file-level through :meth:`File.begin_indep` and :meth:`File.end_indep`. The default I/O mode
3737
is collective I/O in PnetCDF-python.
38-
38+
3939

4040
Alternative Reads and Writes Methods
4141
------------------------------------------
4242

4343
For reading from and writing to netCDF4 variables, PnetCDF-python provides alternative methods in addition to numpy-like indexer syntax. The :meth:`Variable.get_var` and
44-
:meth:`Variable.put_var` methods are faithfull python-implementations of the put/get_var families from the original PnetCDF-C library. By overloading the input arguments,
45-
these methods can fulfill specific I/O needs to the target variable depending on the requirements of the applications: the entire variable, a single data value, an
46-
(subsampled) array of values, a mapped array or a list of subarrays. These methods require an array argument as read/write buffer, which is a prerequisite non-blocking
44+
:meth:`Variable.put_var` methods are faithfull python-implementations of the put/get_var families from the original PnetCDF-C library. By overloading the input arguments,
45+
these methods can fulfill specific I/O needs to the target variable depending on the requirements of the applications: the entire variable, a single data value, an
46+
(subsampled) array of values, a mapped array or a list of subarrays. These methods require an array argument as read/write buffer, which is a prerequisite non-blocking
4747
I/O as introduced below.
4848

4949
For the example program, see ``examples/get_vara.py``.
5050

5151
Non-blocking I/O
5252
------------------------------------------
53-
In additional to blocking read/writes, PnetCDF also offers the nonblocking API that enables users to initiate multiple requests without actually doing I/O and subsequently
54-
flush them altogether. This approach is designed to enhance performance by merging small I/O requests and maximizing I/O efficiency. This features is faithfully
55-
preserved in PnetCDF-python API.
53+
In additional to blocking read/writes, PnetCDF also offers the nonblocking API that enables users to initiate multiple requests without actually doing I/O and subsequently
54+
flush them altogether. This approach is designed to enhance performance by merging small I/O requests and maximizing I/O efficiency. This features is faithfully
55+
preserved in PnetCDF-python API.
5656

57-
For the example program, see ``examples/non_blocking_write.py``.
57+
For the example program, see ``examples/nonblocking/nonblocking_write.py``.

0 commit comments

Comments
 (0)