|
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 125 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 64 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 50 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 153 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 37 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 106 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 82 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 179 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.
1.8.14