MONC
|
All reduction, which does a reduce and then broadcasts the data to all IO servers. More...
Data Types | |
type | allreduce_type |
Functions/Subroutines | |
subroutine, public | init_allreduction_inter_io (io_configuration) |
Initialises the all reduction inter IO functionality. More... | |
subroutine, public | finalise_allreduction_inter_io (io_configuration) |
Finalises the all reduction inter IO functionality. More... | |
logical function, public | check_allreduction_inter_io_for_completion (io_configuration) |
Determines whether this all reduction inter IO functionality has completed or not. More... | |
subroutine, public | perform_inter_io_allreduction (io_configuration, field_values, field_size, field_name, reduction_op, root, timestep, completion_procedure) |
Performs the all reduction inter IO reduction. More... | |
subroutine | internal_reduction_completion_procedure (io_configuration, values, field_name, timestep) |
Internal completion, called after the reduce has completed (on root) and calls out to broadcast. More... | |
subroutine | add_allreduce_information_if_needed (field_name, timestep, root, completion_procedure) |
Adds an all reduce information to the status if it does not exist. More... | |
type(allreduce_type) function, pointer | find_allreduce_information (field_name, timestep, dolock) |
Finds an all reduce status information based on the field name and timestep, or returns null if none is found. More... | |
subroutine | remove_allreduce_information (field_name, timestep, dolock) |
Removes an all reduce status information based on the field name and timestep. More... | |
Variables | |
logical, volatile | initialised =.false. |
integer, volatile | allreduce_rwlock |
type(hashmap_type), volatile | allreduce_types |
All reduction, which does a reduce and then broadcasts the data to all IO servers.
|
private |
Adds an all reduce information to the status if it does not exist.
field_name | The corresponding field name |
timestep | The corresponding timestep |
root | The root process |
completion_procedure | Procedure to call on communication completion |
Definition at line 124 of file allreduction-inter-io.F90.
logical function, public allreduction_inter_io_mod::check_allreduction_inter_io_for_completion | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Determines whether this all reduction inter IO functionality has completed or not.
io_configuration | The IO server configuration |
Definition at line 63 of file allreduction-inter-io.F90.
subroutine, public allreduction_inter_io_mod::finalise_allreduction_inter_io | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Finalises the all reduction inter IO functionality.
io_configuration | The IO server configuration |
Definition at line 49 of file allreduction-inter-io.F90.
|
private |
Finds an all reduce status information based on the field name and timestep, or returns null if none is found.
field_name | The corresponding field name |
timestep | The corresponding timestep |
dolock | Whether to issue a read lock or not |
Definition at line 152 of file allreduction-inter-io.F90.
subroutine, public allreduction_inter_io_mod::init_allreduction_inter_io | ( | type(io_configuration_type), intent(inout) | io_configuration | ) |
Initialises the all reduction inter IO functionality.
io_configuration | The IO server configuration |
Definition at line 36 of file allreduction-inter-io.F90.
|
private |
Internal completion, called after the reduce has completed (on root) and calls out to broadcast.
io_configuration | Configuration of the IO server |
values | Array of values resulting from the communication |
field_name | Corresponding field name |
timestep | Corresponding timestep |
Definition at line 105 of file allreduction-inter-io.F90.
subroutine, public allreduction_inter_io_mod::perform_inter_io_allreduction | ( | type(io_configuration_type), intent(inout) | io_configuration, |
real(kind=double_precision), dimension(:) | field_values, | ||
integer, intent(in) | field_size, | ||
character(len=*), intent(in) | field_name, | ||
integer, intent(in) | reduction_op, | ||
integer, intent(in) | root, | ||
integer, intent(in) | timestep, | ||
procedure(handle_completion) | completion_procedure | ||
) |
Performs the all reduction inter IO reduction.
io_configuration | Configuration of the IO server |
field_values | The values to communicate |
field_size | Number of elements to communicate |
reduction_field_name | Field name that the reduction will be performed over |
reduction_op | The reduction operator to use |
root | The root IO server process |
timestep | The timestep this is issued at |
completion_procedure | Callback completion procedure |
Definition at line 80 of file allreduction-inter-io.F90.
|
private |
Removes an all reduce status information based on the field name and timestep.
field_name | The corresponding field name |
timestep | The corresponding timestep |
dolock | Whether to issue a write lock or not |
Definition at line 178 of file allreduction-inter-io.F90.
|
private |
Definition at line 27 of file allreduction-inter-io.F90.
|
private |
Definition at line 28 of file allreduction-inter-io.F90.
|
private |
Definition at line 25 of file allreduction-inter-io.F90.