Newer
Older
examples/heatTransfer
Podhorszki, Norbert
committed
This example solves a 2D Poisson equation for temperature in homogeneous media
using finite differences. This examples shows a straight-forward way to hook
an application to the ADIOS2 library for its IO.
Podhorszki, Norbert
committed
1. write: illustrates the Write API as well as has implementations of other IO libraries
Podhorszki, Norbert
committed
* hdf5 sequential, separate file per process per step
* phdf5 parallel, steps appended to the same one file
Podhorszki, Norbert
committed
2. read: illustrates the Read API that allows running the reader either as
* post-mortem to read all output steps
* in situ to read step by step as the writer outputs them
(need to run with a suitable engine)
3. read_fileonly: illustrates reading all output steps at once (a single read
statement) into a single contiguous memory block. This approach only works
for post-mortem processing.
Podhorszki, Norbert
committed
Example
1. Produce an output
Writer usage: heatTransfer config output N M nx ny steps iterations
config: XML config file to use
output: name of output data file/stream
N: number of processes in X dimension
M: number of processes in Y dimension
nx: local array size in X dimension per processor
ny: local array size in Y dimension per processor
steps: the total number of steps to output
iterations: one step consist of this many iterations
Podhorszki, Norbert
committed
The ADIOS2 executable needs an XML config file to select the Engine used for the output. The engines are: BPFile, ADIOS1 and HDF5, the corresponding XML config files are in the examples/heatTransfer/ directory.
The adios1, ph5 and hdf5 versions of the example do not use XML config files, so just type "none" for the config argument.
$ mpirun -np 12 ./bin/heatTransfer_write_adios2 ../examples/heatTransfer/heat_bpfile.xml heat 4 3 5 10 10 10
Podhorszki, Norbert
committed
2. Read the output step-by-step and print data into text files (data.<rank> per reader process)
Reader Usage: heatRead config input N M
config: XML config file to use
input: name of input data file/stream
N: number of processes in X dimension
M: number of processes in Y dimension
$ mpirun -np 2 ./bin/heatTransfer_read ../examples/heatTransfer/heat.xml heat 2 1
Notes:
1. Engines for file-based output and post-mortem reading: i
* BPFileWriter/BPFileReader
* HDF5Writer/HDF5Reader
* ADIOS1Writer/ADIOS1Reader
2. Engines for in situ execution
* DataManWriter/DataManReader
(Must run writer and reader with the same number of processes and same decomposition)