H5Part  1.6.6
Functions
Setting up the Data Model
H5MultiBlock C API

Functions

h5part_int64_t H5MultiBlock3dCalculateDecomp (const int nprocs, h5part_int64_t *decomp)
h5part_int64_t H5MultiBlock3dDefineDims (H5PartFile *f, const h5part_int64_t *field_dims, const h5part_int64_t *block_dims)
h5part_int64_t H5MultiBlock3dDefineRadii (H5PartFile *f, const h5part_int64_t ri, const h5part_int64_t rj, const h5part_int64_t rk)
h5part_int64_t H5MultiBlock3dDefineRadius (H5PartFile *f, const h5part_int64_t r)
h5part_int64_t H5MultiBlock3dGetBlockDims (H5PartFile *f, const char *field_name, h5part_int64_t *dims)
h5part_int64_t H5MultiBlock3dGetFieldDims (H5PartFile *f, h5part_int64_t *dims)
h5part_int64_t H5MultiBlock3dGetOffsetsOfProc (H5PartFile *f, const h5part_int64_t proc, h5part_int64_t *offsets)
h5part_int64_t H5MultiBlockShiftProcs (H5PartFile *f, const int shift)

Function Documentation

h5part_int64_t H5MultiBlock3dCalculateDecomp ( const int  nprocs,
h5part_int64_t *  decomp 
)

Finds a 3D block decomposition for an arbitrary number of processors nprocs.

Returns:
H5PART_SUCCESS on success
H5PART_ERR_INVAL if the decomp doesn't have nprocs blocks
Parameters:
nprocsIN: number of processors/blocks
decompOUT: 3D block decomposition
h5part_int64_t H5MultiBlock3dDefineDims ( H5PartFile *  f,
const h5part_int64_t *  field_dims,
const h5part_int64_t *  block_dims 
)

Define the field and block dimensions for writing.

Returns:
H5PART_SUCCESS on success H5PART_ERR_INVAL if block dims do not divide field dims
h5part_int64_t H5MultiBlock3dDefineRadii ( H5PartFile *  f,
const h5part_int64_t  ri,
const h5part_int64_t  rj,
const h5part_int64_t  rk 
)

Define the radii for halo exchanges between the blocks. Blocks on the edges of the field will be padded with zero values out to the radius.

Different radii can be set for each direction.

Returns:
H5PART_SUCCESS on success
h5part_int64_t H5MultiBlock3dDefineRadius ( H5PartFile *  f,
const h5part_int64_t  r 
)

Define the radius for halo exchanges between the blocks. Blocks on the edges of the field will be padded with zero values out to the radius.

Returns:
H5PART_SUCCESS on success
h5part_int64_t H5MultiBlock3dGetBlockDims ( H5PartFile *  f,
const char *  field_name,
h5part_int64_t *  dims 
)

Returns the block dimensions of the last field that was read.

Returns:
H5PART_SUCCESS on success
H5PART_ERR_INVAL if no field has been read yet
h5part_int64_t H5MultiBlock3dGetFieldDims ( H5PartFile *  f,
h5part_int64_t *  dims 
)

Returns the field dimensions of the last field that was read.

Returns:
H5PART_SUCCESS on success
H5PART_ERR_INVAL if no field has been read yet
h5part_int64_t H5MultiBlock3dGetOffsetsOfProc ( H5PartFile *  f,
const h5part_int64_t  proc,
h5part_int64_t *  offsets 
)

Return the offsets for the block belonging to processor proc.

Returns:
H5PART_SUCCESS on success
H5PART_ERR_INVAL if proc is invalid
h5part_int64_t H5MultiBlockShiftProcs ( H5PartFile *  f,
const int  shift 
)

Shifts the assignment of procs to blocks within the field.

This is useful mainly for I/O benchmarking, in order to defeat the write cache when reading in data that was just written out.

Returns:
H5PART_SUCCESS