MONC
Data Types | Modules | Functions/Subroutines | Variables
broadcast-inter-io.F90 File Reference

Go to the source code of this file.

Data Types

type  broadcast_inter_io_mod::inter_io_broadcast
 
type  broadcast_inter_io_mod::threaded_callback_parameters_type
 

Modules

module  broadcast_inter_io_mod
 Broadcast inter IO communication which sends a value from one IO server to all others. This tracks field name and timestep and only issues one call (and one results call to completion) for that combination.
 

Functions/Subroutines

subroutine, public broadcast_inter_io_mod::init_broadcast_inter_io (io_configuration)
 Initialises the broadcast inter IO functionality. More...
 
subroutine, public broadcast_inter_io_mod::finalise_broadcast_inter_io ()
 Finalises the broadcast inter IO functionality. More...
 
logical function, public broadcast_inter_io_mod::check_broadcast_inter_io_for_completion (io_configuration)
 Checks the statuses for broadcast completion and returns whether they are all finished or not. More...
 
subroutine broadcast_inter_io_mod::handle_recv_data_from_io_server (io_configuration, data_buffer, inter_io_index)
 Handles receiving data from another IO server and processing this. If the request has already been registered (with a callback) then this simply calls out. Otherwise it has to cache the data and awaits a thread calling the broadcast to call out to the callback. More...
 
subroutine, public broadcast_inter_io_mod::perform_inter_io_broadcast (io_configuration, field_values, field_size, field_name, root, timestep, completion_procedure)
 Performs an inter IO broadcast of data from the root to all other IO servers. Note that this is on the IO server (and not MONC level) so might require some translation between the user's logical view and this view. Broadcasts are only issued once for a specific field_name and timestep pair. More...
 
subroutine broadcast_inter_io_mod::issue_thread_call_to_completion (field_name, timestep, values, completion_procedure)
 Issues the call into the thread pool to call the completion procedure, this runs in a seperate thread and ensures the semantics of one IO server or many with message ordering are independent. More...
 
subroutine broadcast_inter_io_mod::thread_call_to_completion (arguments, data_buffer)
 Called by the thread pool, this will call onto the completion procedure before cleaning up @arguments Integer arguments, this is the ID of the entry in the state @data_buffer Unused here. More...
 
subroutine broadcast_inter_io_mod::clean_broadcast_progress_if_needed ()
 Calls out to do a broadcast progress clean if needed (i.e. every n steps.) More...
 
subroutine broadcast_inter_io_mod::clean_broadcast_progress ()
 Performs a clean of the broadcast progresses that no longer need to be stored. More...
 
type(inter_io_broadcast) function, pointer broadcast_inter_io_mod::find_or_add_broadcast_item (field_name, timestep, completion_procedure)
 Locates and returns or adds and returns a specific broadcast item representing a timestep and field. More...
 
type(inter_io_broadcast) function, pointer broadcast_inter_io_mod::find_broadcast_item (field_name, timestep, do_read_lock)
 Finds a specific broadcast item or null if none is found. More...
 
type(inter_io_broadcast) function, pointer broadcast_inter_io_mod::retrieve_broadcast_item (mapentry)
 Locates a broadcast item within a mapentry or null if none exists. More...
 

Variables

integer, parameter broadcast_inter_io_mod::my_inter_io_tag =2
 
integer, parameter broadcast_inter_io_mod::perform_clean_every =200
 
character(len= *), parameter broadcast_inter_io_mod::my_inter_io_name ="bcastinterio"
 Type keeping track of broadcast statuses. More...
 
type(io_configuration_type), pointer broadcast_inter_io_mod::stored_io_configuration
 
type(hashmap_type), volatile broadcast_inter_io_mod::broadcast_statuses
 
type(hashmap_type), volatile broadcast_inter_io_mod::thread_callback_params
 
integer, volatile broadcast_inter_io_mod::broadcast_statuses_rwlock
 
integer, volatile broadcast_inter_io_mod::inter_io_description_mutex
 
integer, volatile broadcast_inter_io_mod::clean_progress_mutex
 
integer, volatile broadcast_inter_io_mod::bcast_count_mutex
 
integer, volatile broadcast_inter_io_mod::bcast_clean_reduction_count
 
integer, volatile broadcast_inter_io_mod::bcast_count
 
integer, volatile broadcast_inter_io_mod::thread_callback_params_id
 
integer, volatile broadcast_inter_io_mod::thread_callback_params_mutex
 
logical, volatile broadcast_inter_io_mod::initialised =.false.