MONC
Data Types | Modules | Functions/Subroutines | Variables
mpicommunication.F90 File Reference

Go to the source code of this file.

Data Types

interface  mpi_communication_mod::usleep
 

Modules

module  mpi_communication_mod
 Abstraction layer around MPI, this issues and marshals the lower level communication details.
 

Functions/Subroutines

subroutine, public mpi_communication_mod::initialise_mpi_communication (provided_threading)
 Initialises MPI communication. More...
 
subroutine, public mpi_communication_mod::lock_mpi ()
 If we are explicitly managing MPI thread safety (SERIALIZED mode) then locks MPI. More...
 
subroutine, public mpi_communication_mod::unlock_mpi ()
 If we are explicitly managing MPI thread safety (SERIALIZED mode) then unlocks MPI. More...
 
subroutine, public mpi_communication_mod::pause_for_mpi_interleaving ()
 Pauses for a specific number of ms to allow for MPI interleaving, this is to avoid starvation. More...
 
subroutine, public mpi_communication_mod::wait_for_mpi_request (request, status)
 Waits for a specific MPI request to complete, either by managing thread safety and interleaving or just a call to MPI if we are in multiple mode. More...
 
subroutine, public mpi_communication_mod::waitall_for_mpi_requests (requests, count)
 Waits for all MPI requests to complete, either by managing thread safety and interleaving or just a call to MPI if we are in multiple mode. More...
 
integer function, public mpi_communication_mod::get_number_io_servers (io_comm)
 Retrieves the number of IO servers that are running in total. More...
 
integer function, public mpi_communication_mod::get_my_io_rank (io_comm)
 Retrieves my IO server rank out of the number of IO servers that are running. More...
 
subroutine, public mpi_communication_mod::register_command_receive ()
 Registers a request for receiving a command from any MONC process on the command channel. More...
 
integer function, public mpi_communication_mod::data_receive (mpi_datatype, num_elements, source, dump_data, data_dump_id, description_data)
 Awaits some data on the data channel. This is of the type, size from the source provided and can either be written into a byte buffer or integer buffer depending upon the arguments provided. More...
 
subroutine, public mpi_communication_mod::cancel_requests ()
 Cancels all outstanding communication requests. More...
 
subroutine mpi_communication_mod::cancel_request (req)
 Cancels a specific communication request. More...
 
logical function, public mpi_communication_mod::test_for_command (command, source)
 Tests for a command message based upon the request already registered. More...
 
logical function, public mpi_communication_mod::test_for_inter_io (inter_io_communications, number_of_inter_io, io_communicator, command, source, data_buffer)
 Tests for inter IO server communication. More...
 
subroutine, public mpi_communication_mod::free_mpi_type (the_type)
 Frees an MPI type, used in clean up. More...
 
integer function, public mpi_communication_mod::build_mpi_datatype (data_definition, data_size_info, data_size, field_start_locations, field_end_locations, field_dimensions)
 Builds the MPI type that corresponds to the data which will be received from a specific MONC process. Two factors determine the structure and size of this - the XML configuration which has been parsed and also specific details of array sizes sent by each process as part of its registration process. More...
 

Variables

integer, parameter mpi_communication_mod::ms_wait_between_tests =100
 Interface to the C usleep Linux call which allows us to sleep for a specific number of MS. More...
 
integer mpi_communication_mod::command_buffer
 Buffer used to receive the command data into when it arrives on that channel. More...
 
integer mpi_communication_mod::command_request_handle
 Request handle representing the asynchronous P2P command request. More...
 
integer mpi_communication_mod::mpi_threading_mode
 
integer, volatile mpi_communication_mod::mpi_mutex
 
logical mpi_communication_mod::manage_mpi_thread_safety