PIO  1.7.1
 All Classes Files Functions Groups Pages
Public Member Functions | Public Attributes | List of all members
piovdc Module Reference

Public Member Functions

subroutine adjust_bounds (global_dims, start, count, rank)
 subroutine checks start/count for out of bounds, adjusts if the start/count is too high, zeroes start if it is invalid POST-EFFECTS:
all start/counts are now legal, non-IO tasks have zeroed start counts More...
 
subroutine auto_get_start_count (rank, nioprocs, block_dims, start, count, bsize, data_dims)
 subroutine that, given a global grid, VDC blocksize, and max # of nioprocs, will automatically create an VDC optimized IO decomposition that uses the most possible IO tasks More...
 
subroutine init_vdc2 (rank, data_dims, vdc_bsize, iostart, iocount, ioprocs)
 subroutine that prepares the global grid to be split by the auto_start_count routine More...
 

Public Attributes

integer(i4), dimension(3) vdc_dims
 
integer(i4), dimension(3) vdc_bsize
 
integer(i4) vdc_ts
 
integer(kind=pio_offset),
dimension(3) 
vdc_iostart
 
integer(kind=pio_offset),
dimension(3) 
vdc_iocount
 

Member Function/Subroutine Documentation

subroutine piovdc::adjust_bounds ( integer (i4), dimension(:), intent(in)  global_dims,
integer (kind=pio_offset), dimension(:), intent(inout)  start,
integer (kind=pio_offset), dimension(:), intent(inout)  count,
integer(i4), intent(in)  rank 
)

subroutine checks start/count for out of bounds, adjusts if the start/count is too high, zeroes start if it is invalid POST-EFFECTS:
all start/counts are now legal, non-IO tasks have zeroed start counts

Parameters
[in]global_dimsint(3) global grid dimensions
[in]rankint rank of current MPI task
[in,out]startint(3) current MPI task global start
[in,out]countint(3) current MPI task global count
subroutine piovdc::auto_get_start_count ( integer (i4), intent(in)  rank,
integer (i4), intent(inout)  nioprocs,
real (r4), dimension(:), intent(in)  block_dims,
integer (kind=pio_offset), dimension(3), intent(out)  start,
integer (kind=pio_offset), dimension(3), intent(out)  count,
integer(i4), dimension(:), intent(in)  bsize,
integer(i4), dimension(:), intent(in)  data_dims 
)

subroutine that, given a global grid, VDC blocksize, and max # of nioprocs, will automatically create an VDC optimized IO decomposition that uses the most possible IO tasks

POST-EFFECTS:
Each MPI Task is now either and IO task or a computational task. IO tasks have nonzero start/counts

Parameters
[in]rankint rank of the current MPI task
[in,out]nioprocsint represents the max possible # of IO procs, will try to get as close as possible to this # and return it in nioprocs
[in]blockdimsint(3) global grid dimensions represented as VDC blocks
[out]startint(3) iostart for the current MPI task
[out]countint(3) iocount for the current MPI task
[in]bsizeint(3) VDC block size
subroutine piovdc::init_vdc2 ( integer (i4), intent(in)  rank,
integer(i4), dimension(:), intent(in)  data_dims,
integer(i4), dimension(:), intent(in)  vdc_bsize,
integer (kind=pio_offset), dimension(3), intent(out)  iostart,
integer (kind=pio_offset), dimension(3), intent(out)  iocount,
integer (i4), intent(inout)  ioprocs 
)

subroutine that prepares the global grid to be split by the auto_start_count routine

POST-EFFECTS:
A valid IO decomposition is created that can be used with PIO

Parameters
[in]rankint rank of the current
[in]data_dimsint(3) size of the global grid
[in]vdc_bsizeint(3) VDC block size
[out]iostartint(3) IO start for the current MPI task
[out]iocountint(3) IO count for the current MPI task
[in,out]ioprocsint max # of IO procs, gets returned as the actual # used

The documentation for this module was generated from the following file: