Scrambler
1
|
Provides communication routines for getting data to the master processor for I/O. More...
Public Member Functions | |
subroutine, public | IO_ScheduleSendFrameData (level, finest_level, buffer_size, buffer_totals) |
Sends the node and grid data for a given level to the master processor. | |
subroutine, public | IO_ScheduleSendDomainData (buffer_totals) |
Packs and sends boxes and cost maps from level -1 to master. | |
subroutine, public | IO_GetDatasetSizes (level, finest_level, dataset_sizes) |
Use collective MPI communication routines to aggregate dataset information on Master. | |
subroutine, public | IO_PostRecvGridsFromWorkers (sm_group, level) |
Posts receives for grids passed from workers as part of the Chombo restart process. | |
subroutine, public | IO_UnparseGridsFromWorkers (chandle, message) |
Receives and processes grids passed from workers as part of the Chombo restart process. | |
subroutine, public | IO_PostSendGridsToMaster (message, level) |
Packs and posts sends with grids for the master processor as part of the Chombo restart process. | |
subroutine, public | IO_CompSendGridsToMaster (message) |
Receives and processes grids passed from workers as part of the Chombo restart process. | |
subroutine, public | IO_MpiSendDataToWorkers (chandle, level) |
Packs and posts sends with data for workers as part of the Chombo restart process. Data for the master processor is simply copied to the appropriate InfoDef structure. | |
subroutine, public | IO_CompRecvDataFromMaster (level, chandle) |
Receives data from master during Chombo restart and stores it in the appropriate Info structures. | |
INTEGER function, public | IO_CalcMessageCost (node, level, finest_level) |
Calculates the cost in bytes of sending a node's contribution to a Chombo file. | |
subroutine, public | IO_UnparseLevelStatistics (message, level_stats) |
Retrieves a 1D integer array of level statistics from a packed message. | |
Public Attributes | |
INTEGER, parameter, public | IO_Q_SIZE = 1 |
INTEGER, parameter, public | IO_AUX_SIZE = 2 |
INTEGER, parameter, public | IO_CHILDCOUNT = 3 |
INTEGER, parameter, public | IO_NEXTLEVELCOST = 4 |
INTEGER, parameter, public | IO_LEVEL_STAT_COUNT = 4 |
INTEGER, parameter, public | IO_LEVEL_STAT_BYTES = 16 |
Private Member Functions | |
subroutine | MatchNodeBoxMpiRank (chandle, mod_box) |
Attempts to locate the counterpart of mod_box within the Chombo handle and replace its MPI_id. | |
LOGICAL function | IsContainedWithin (inside_array, inside_level, outside_array, outside_level) |
Returns true if the dimensions of the first box lie entirely within the dimensions of the outside box. |
Provides communication routines for getting data to the master processor for I/O.
Definition at line 34 of file io_comms.f90.
subroutine, public IO_ScheduleSendFrameData | ( | INTEGER | level, |
INTEGER | finest_level, | ||
INTEGER | buffer_size, | ||
INTEGER, dimension(io_level_stat_count) | buffer_totals | ||
) |
Sends the node and grid data for a given level to the master processor.
level | The level of the data to be sent. |
buffer_totals | A 3-element integer array holding the level's total q cells, aux cells, and child nodes. |
finest_level | Finest Level |
Definition at line 90 of file io_comms.f90.
subroutine, public IO_ScheduleSendDomainData | ( | INTEGER, dimension(io_level_stat_count) | buffer_totals | ) |
Packs and sends boxes and cost maps from level -1 to master.
buffer_totals | A 3-element integer array holding the level's total q cells, aux cells, and child nodes. |
Definition at line 148 of file io_comms.f90.
subroutine, public IO_GetDatasetSizes | ( | INTEGER | level, |
INTEGER | finest_level, | ||
INTEGER, dimension(io_level_stat_count), intent(out) | dataset_sizes | ||
) |
Use collective MPI communication routines to aggregate dataset information on Master.
level | The level of the data being collected. |
dataset_sizes | An optional 1D integer array that will hold the output variables. |
finest_level | Finest Level |
Definition at line 195 of file io_comms.f90.
subroutine, public IO_PostRecvGridsFromWorkers | ( | TYPE(StageMessageGroup), pointer | sm_group, |
INTEGER | level | ||
) |
Posts receives for grids passed from workers as part of the Chombo restart process.
sm_group | A StageMessageGroup pointer to be initialized and used. |
level | The level of the information being transferred. |
Definition at line 291 of file io_comms.f90.
subroutine, public IO_UnparseGridsFromWorkers | ( | TYPE(ChomboHandle), pointer | chandle, |
TYPE(PackedMessage), pointer | message | ||
) |
Receives and processes grids passed from workers as part of the Chombo restart process.
chandle | An active Chombo handle. |
sm_group | A StageMessageGroup pointer to be initialized and used. |
Definition at line 315 of file io_comms.f90.
subroutine MatchNodeBoxMpiRank | ( | TYPE(ChomboHandle), pointer | chandle, |
TYPE(NodeBox), pointer | mod_box | ||
) | [private] |
Attempts to locate the counterpart of mod_box within the Chombo handle and replace its MPI_id.
chandle | An active Chombo handle. |
mod_box | A NodeBox object whose MPI rank will replace the one in its Chombo counterpart. |
Definition at line 338 of file io_comms.f90.
LOGICAL function IsContainedWithin | ( | INTEGER, dimension(max_dims, 2) | inside_array, |
INTEGER | inside_level, | ||
INTEGER, dimension(max_dims, 2) | outside_array, | ||
INTEGER | outside_level | ||
) | [private] |
Returns true if the dimensions of the first box lie entirely within the dimensions of the outside box.
inside_array | The box that (we hope) is inside the outside box. |
outside_array | The box that (we hope) contains the inside box. |
inside_level | The level of the inside box. |
outside_level | The level of the outside box. |
This is kind of a crummy design, in that the boxes may be no more than one level apart. I hope to improve it.
Definition at line 369 of file io_comms.f90.
subroutine, public IO_PostSendGridsToMaster | ( | TYPE(PackedMessage), pointer | message, |
INTEGER | level | ||
) |
Packs and posts sends with grids for the master processor as part of the Chombo restart process.
message | A PackedMessageObject that will be initialized. |
level | The level of the information being transferred. |
Definition at line 399 of file io_comms.f90.
subroutine, public IO_CompSendGridsToMaster | ( | TYPE(PackedMessage), pointer | message | ) |
Receives and processes grids passed from workers as part of the Chombo restart process.
message | A PackedMessage object with uncompleted sends. |
Definition at line 448 of file io_comms.f90.
subroutine, public IO_MpiSendDataToWorkers | ( | TYPE(ChomboHandle), pointer | chandle, |
INTEGER | level | ||
) |
Packs and posts sends with data for workers as part of the Chombo restart process. Data for the master processor is simply copied to the appropriate InfoDef structure.
chandle | An active chombo handle. |
sm_group | A StageMessageGroup object that will be initialized here. |
level | The level of the information being transferred. Should always be >= -1. |
Definition at line 465 of file io_comms.f90.
subroutine, public IO_CompRecvDataFromMaster | ( | INTEGER | level, |
TYPE(ChomboHandle), pointer | chandle | ||
) |
Receives data from master during Chombo restart and stores it in the appropriate Info structures.
message | A PackedMessage object. The level of this message should always be >= -1. |
chandle | An active Chombo file handle. |
Definition at line 602 of file io_comms.f90.
INTEGER function, public IO_CalcMessageCost | ( | TYPE(NodeDef), pointer | node, |
INTEGER | level, | ||
INTEGER | finest_level | ||
) |
Calculates the cost in bytes of sending a node's contribution to a Chombo file.
node | The node whose cost is being sent. |
level | The level of the node in question. |
finest_level | The finest level of data this Chombo file will be recording. |
Definition at line 630 of file io_comms.f90.
subroutine, public IO_UnparseLevelStatistics | ( | TYPE(PackedMessage), pointer | message, |
INTEGER, dimension(io_level_stat_count) | level_stats | ||
) |
Retrieves a 1D integer array of level statistics from a packed message.
message | The message from which the data comes. |
level_stats | The 1D integer array in which the data goes. |
Definition at line 680 of file io_comms.f90.
INTEGER, parameter, public IO_Q_SIZE = 1 |
Definition at line 71 of file io_comms.f90.
INTEGER, parameter, public IO_AUX_SIZE = 2 |
Definition at line 72 of file io_comms.f90.
INTEGER, parameter, public IO_CHILDCOUNT = 3 |
Definition at line 73 of file io_comms.f90.
INTEGER, parameter, public IO_NEXTLEVELCOST = 4 |
Definition at line 74 of file io_comms.f90.
INTEGER, parameter, public IO_LEVEL_STAT_COUNT = 4 |
Definition at line 75 of file io_comms.f90.
INTEGER, parameter, public IO_LEVEL_STAT_BYTES = 16 |
Definition at line 77 of file io_comms.f90.