
MPI Cubix is a collective I/O library for POSIX and MPI. It is a _portable_ library, not specific to any implementation of MPI. MPI Cubix has been tested with LAM and MPICH on most UNIX workstations.
The following description is distilled from Ohio Supercomputer Center Technical Report OSC-TR-1995-10 which can be obtained at the LAM ftp site. The library itself (mpi-cubix*.tar.Z) can be obtained from the same location.
Send bug reports on MPI Cubix to lam@tbag.osc.edu.
The functionality of MPI Cubix closely follows the I/O functionality of the Cubix parallel software developed at the California Institute of Technology.
The I/O in MPI Cubix could be described as parallel but it is more accurately described as collective. As in MPI, all processes in a communicator participate in each operation. However, only one file on one file system is operated upon by each operation. (Straight POSIX calls to the local environment is one way to operate on multiple files.) MPI Cubix intends to simplify the manipulation, distribution and collection of data between a single file and a parallel application.


int CBX_Open(const char *name, int flags, int mode,
int owner, MPI_Comm comm);
int CBX_Close(int fd);
int CBX_Read(int fd, void *buffer, int count,
MPI_Datatype dtype);
int CBX_Write(int fd, void *buffer, int count,
MPI_Datatype dtype);
off_t CBX_Lseek(int fd, off_t offset, int whence);
The I/O operations are collective upon the group of processes in the
communicator used to open the file. Two access methods are provided.
In Singl method, all processes must provide identical arguments. Input
data is broadcast to all processes; output data is taken from only one
process. In Multi method, processes can provide individual varying
lengths to input, output and seek operations. Separate input data is
read for each process. Output data is taken from all processes. The
access method is originally established when the file is opened by
adding a special MPI Cubix open flag. It can be changed between Singl
and Multi at any time with another collective function call.When a file is opened, a single process in the communicator group is chosen to own and hence operate on the file. No other process actually operates on the file and the owner cannot change without closing and re-opening the file (assuming it is in the file space of another process).
LAM / MPI Parallel Computing
/ Ohio Supercomputer Center / lam@tbag.osc.edu