Here is a list of frequently asked questions and their answers.
- How do I specify which tasks perform IO?
- This is done in the call to PIO_init which has two interfaces: init_intracom and init_intercom.
Note that num_iotasks is the maximum number of IO tasks to use for an IO operation. The size of the field being read or written along with the tunable blocksize parameter, PIO_set_blocksize, determines the actual number of tasks used for a given IO operation.
In the init_intracom interface, use the num_iotasks and stride variables to specify the total number of io tasks and the stride between them with respect to the mpi communicator, comp_comm, which is provided. You can also use the optional base argument to shift the first IO task away from the first computational task, this is often desirable because the applications first computational task often has higher memory requirements than other tasks. IO tasks are a subset of the tasks defined in comp_comm.
In the init_intercom interface, IO tasks are a disjoint set of tasks from those in the computational communicator. This interface is still experimental and not recommended for production use at this time.
- How do I test if PIO is installed and working correctly?
The PIO Library distribution contains a testpio subdirectory with a number of programs to test the PIO library. Please see the Examples page for details.