distribute data identification numbers across images such that the number of items differs by at most 1 between any two images.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | cardinality |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
define the range of data identification numbers owned by the executing image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(inout) | :: | self | |||
integer, | intent(in) | :: | cardinality |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
the result is the first identification number owned by the executing image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
integer, | intent(in), | optional | :: | image_number |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
Gather the elements of an 1D array distributed along dimension dim onto result_image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
real(kind=real32), | intent(inout) | :: | a(:) | |||
integer, | intent(in), | optional | :: | result_image | ||
integer, | intent(in), | optional | :: | dim |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
Gather the elements of an 2D array distributed along dimension dim onto result_image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
real(kind=real32), | intent(inout) | :: | a(:,:) | |||
integer, | intent(in), | optional | :: | result_image | ||
integer, | intent(in), | optional | :: | dim |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
Gather the elements of an 1D array distributed along dimension dim onto result_image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
real(kind=real64), | intent(inout) | :: | a(:) | |||
integer, | intent(in), | optional | :: | result_image | ||
integer, | intent(in), | optional | :: | dim |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
Gather the elements of an 2D array distributed along dimension dim onto result_image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
real(kind=real64), | intent(inout) | :: | a(:,:) | |||
integer, | intent(in), | optional | :: | result_image | ||
integer, | intent(in), | optional | :: | dim |
Gathers are inherently expensive and are best used either 1. Near the beginning/end of execution to amortize costs across an entire run or 2. Temporarily while developing/debugging code.
the result is the last identification number owned by the executing image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(data_partition_t), | intent(in) | :: | self | |||
integer, | intent(in), | optional | :: | image_number |
encapsulate a description of the data subset the executing image owns
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(bin_t), | private, | allocatable | :: | bin(:) |
private pure, module function construct (cardinality) |
procedure, public :: define_partitions | |
procedure, public :: first | |
generic, public :: gather => gather_real32_2D_array, gather_real64_2D_array, gather_real32_1D_array, gather_real64_1D_array | |
procedure, public :: last | |
procedure, private :: gather_real32_1D_array | |
procedure, private :: gather_real32_2D_array | |
procedure, private :: gather_real64_1D_array | |
procedure, private :: gather_real64_2D_array |