H5Part 1.6.6
Functions
Setting up the Data Model

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)
 

Detailed Description

Function Documentation

◆ H5MultiBlock3dCalculateDecomp()

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

◆ H5MultiBlock3dDefineDims()

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

◆ H5MultiBlock3dDefineRadii()

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

◆ H5MultiBlock3dDefineRadius()

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

◆ H5MultiBlock3dGetBlockDims()

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

◆ H5MultiBlock3dGetFieldDims()

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

◆ H5MultiBlock3dGetOffsetsOfProc()

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

◆ H5MultiBlockShiftProcs()

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