| 
    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.