Initialize an I/O decomposition.
More...
|
subroutine | spio_decomp::pio_initdecomp_int (iosys, dt, gdims, map, iodesc, rearr, iostart, iocount, ierr) |
| Initialize an I/O decomposition. More...
|
|
subroutine | spio_decomp::pio_initdecomp_offset (iosys, dt, gdims, map, iodesc, rearr, iostart, iocount, ierr) |
| Initialize an I/O decomposition. More...
|
|
subroutine | spio_decomp::pio_initdecomp_bc (iosys, dt, gdims, mapstart, mapcount, iodesc, ierr) |
| Initialize a block cyclic I/O decomposition. More...
|
|
Initialize an I/O decomposition.
◆ pio_initdecomp_bc()
subroutine spio_decomp::pio_initdecomp_bc |
( |
type(iosystem_desc_t), intent(in) |
iosys, |
|
|
integer, intent(in) |
dt, |
|
|
integer, dimension(:), intent(in) |
gdims, |
|
|
integer(pio_offset_kind), dimension(:), intent(in) |
mapstart, |
|
|
integer(pio_offset_kind), dimension(:), intent(in) |
mapcount, |
|
|
type(io_desc_t), intent(inout) |
iodesc, |
|
|
integer, intent(out), optional |
ierr |
|
) |
| |
Initialize a block cyclic I/O decomposition.
- Parameters
-
[in] | iosys | The handle to the I/O subsystem associated with the I/O decomposition. IO system descriptor structure. This structure contains the general IO subsystem data and MPI structure |
[in] | dt | The type of the data in memory. Note that users can use an I/O decomposition representing data in memory with type T1 (e.g. real(r8)) to write data for a variable with a different type, say T2 (e.g. real(r4)) as long as T1 can be safely typecasted to T2. The base types supported by PIO are:
- PIO_double : 8-byte reals or double precision
|
- PIO_real : 4-byte reals
- PIO_int : 4-byte integers
- PIO_char : character
- Parameters
-
[in] | gdims | The global dimensions of the I/O decomposition |
[in] | mapstart | The starting indices for the I/O decomposition map for the block cyclic decomposition. Each element in the array corresponds to the start index for the I/O decomposition (mapstart[i] contains the start index for dimension i in the current process). The size of this array needs to be equal to the number of dimensions of the variables/data represented by this I/O decomposition |
[in] | mapcount | The number of elements (count)in the I/O decomposition map for the block cyclic decomposition. Each element in the array corresponds to the number of elements for the I/O decomposition (mapcount[i] contains the number of elements for dimension i in the current process). The size of this array needs to be equal to the number of dimensions of the variables/data represented by this I/O decomposition |
[out] | iodesc | The handle to the I/O decomposition is returned via this arg. |
IO descriptor structure. This structure defines the mapping for a given variable between compute and IO decomposition. - Parameters
-
[out] | ierr | (Optional) : The error return code. Set to PIO_NOERR on success, or an error code otherwise (See PIO_seterrorhandling for more information on how to customize/set error handling) |
◆ pio_initdecomp_int()
subroutine spio_decomp::pio_initdecomp_int |
( |
type(iosystem_desc_t), intent(in) |
iosys, |
|
|
integer, intent(in) |
dt, |
|
|
integer, dimension(:), intent(in) |
gdims, |
|
|
integer(i4), dimension(:), intent(in) |
map, |
|
|
type(io_desc_t), intent(inout) |
iodesc, |
|
|
integer, intent(in), optional, target |
rearr, |
|
|
integer(pio_offset_kind), dimension(:), intent(in), optional |
iostart, |
|
|
integer(pio_offset_kind), dimension(:), intent(in), optional |
iocount, |
|
|
integer, intent(out), optional |
ierr |
|
) |
| |
Initialize an I/O decomposition.
- Parameters
-
[in] | iosys | The handle to the I/O subsystem associated with the I/O decomposition. IO system descriptor structure. This structure contains the general IO subsystem data and MPI structure |
[in] | dt | The type of the data in memory. Note that users can use an I/O decomposition representing data in memory with type T1 (e.g. real(r8)) to write data for a variable with a different type, say T2 (e.g. real(r4)) as long as T1 can be safely typecasted to T2. The base types supported by PIO are:
- PIO_double : 8-byte reals or double precision
|
- PIO_real : 4-byte reals
- PIO_int : 4-byte integers
- PIO_char : character
- Parameters
-
[in] | gdims | The global dimensions of the I/O decomposition |
[in] | map | The mapping between local data index and the global linearized index for each local data element e.g. If after partitioning the local array contains A(2,3) and A(3,3) of an array A[4x4], the map needs to contain [10, 11] corrsponding to the linearized indices of A(2,3) & A(3,3) |
[out] | iodesc | The handle to the I/O decomposition is returned via this arg. |
IO descriptor structure. This structure defines the mapping for a given variable between compute and IO decomposition. - Parameters
-
[in] | rearr | (Optional) The data rearranger to use for this I/O decomposition. The three choices to control rearrangement are:
- PIO_rearr_none : Do not use any form of rearrangement
|
- PIO_rearr_box : Use a PIO internal box rearrangement
PIO_rearr_subset : Use a PIO internal subsetting rearrangement
- PIO_rearr_any : Let the library choose the optimal rearranger
- Parameters
-
[in] | iostart | (Optional) The start array containing the local start index for all the dimensions. i.e., start(i) contains the starting index for data in the current process for dimension i and size(start) = number of dimensions for the data. The start array is passed in for trivial (e.g. block cyclic) decompositions. The library internally calculates this value if not provided by the user. |
[in] | iocount | (Optional) The count array containing the local count for all the dimensions. i.e., count(i) contains the number of elements of data in the current process for dimension i and size(count) = number of dimensions for the data. The count array is passed in for trivial (e.g. block cyclic) decompositions. The library internally calculates this value if not provided by the user. |
[out] | ierr | (Optional) : The error return code. Set to PIO_NOERR on success, or an error code otherwise (See PIO_seterrorhandling for more information on how to customize/set error handling) |
◆ pio_initdecomp_offset()
subroutine spio_decomp::pio_initdecomp_offset |
( |
type(iosystem_desc_t), intent(in) |
iosys, |
|
|
integer, intent(in) |
dt, |
|
|
integer, dimension(:), intent(in) |
gdims, |
|
|
integer(pio_offset_kind), dimension(:), intent(in) |
map, |
|
|
type(io_desc_t), intent(inout) |
iodesc, |
|
|
integer, intent(in), optional, target |
rearr, |
|
|
integer(pio_offset_kind), dimension(:), intent(in), optional |
iostart, |
|
|
integer(pio_offset_kind), dimension(:), intent(in), optional |
iocount, |
|
|
integer, intent(out), optional |
ierr |
|
) |
| |
Initialize an I/O decomposition.
- Parameters
-
[in] | iosys | The handle to the I/O subsystem associated with the I/O decomposition. IO system descriptor structure. This structure contains the general IO subsystem data and MPI structure |
[in] | dt | The type of the data in memory. Note that users can use an I/O decomposition representing data in memory with type T1 (e.g. real(r8)) to write data for a variable with a different type, say T2 (e.g. real(r4)) as long as T1 can be safely typecasted to T2. The base types supported by PIO are:
- PIO_double : 8-byte reals or double precision
|
- PIO_real : 4-byte reals
- PIO_int : 4-byte integers
- PIO_char : character
- Parameters
-
[in] | gdims | The global dimensions of the I/O decomposition |
[in] | map | The mapping between local data index and the global linearized index for each local data element e.g. If after partitioning the local array contains A(2,3) and A(3,3) of an array A[4x4], the map needs to contain [10, 11] corrsponding to the linearized indices of A(2,3) & A(3,3) |
[out] | iodesc | The handle to the I/O decomposition is returned via this arg. |
IO descriptor structure. This structure defines the mapping for a given variable between compute and IO decomposition. - Parameters
-
[in] | rearr | (Optional) The data rearranger to use for this I/O decomposition. The three choices to control rearrangement are:
- PIO_rearr_none : Do not use any form of rearrangement
|
- PIO_rearr_box : Use a PIO internal box rearrangement
PIO_rearr_subset : Use a PIO internal subsetting rearrangement
- PIO_rearr_any : Let the library choose the optimal rearranger
- Parameters
-
[in] | iostart | (Optional) The start array containing the local start index for all the dimensions. i.e., start(i) contains the starting index for data in the current process for dimension i and size(start) = number of dimensions for the data. The start array is passed in for trivial (e.g. block cyclic) decompositions. The library internally calculates this value if not provided by the user. |
[in] | iocount | (Optional) The count array containing the local count for all the dimensions. i.e., count(i) contains the number of elements of data in the current process for dimension i and size(count) = number of dimensions for the data. The count array is passed in for trivial (e.g. block cyclic) decompositions. The library internally calculates this value if not provided by the user. |
[out] | ierr | (Optional) : The error return code. Set to PIO_NOERR on success, or an error code otherwise (See PIO_seterrorhandling for more information on how to customize/set error handling) |