MPI_File fh;  MPI_Info info;

MPI_Info_create(&info);

/* FOLLOWING HINTS ARE PREDEFINED IN MPI */

/* no. of I/O devices across which the file should be striped */
MPI_Info_set(info, "striping_factor", "16");

/* the striping unit in bytes */
MPI_Info_set(info, "striping_unit", "1048576");

/* buffer size for collective I/O */
MPI_Info_set(info, "cb_buffer_size", "8388608");

/* no. of processes that should perform disk accesses 
   during collective I/O */
MPI_Info_set(info, "cb_nodes", "16");

/* FOLLOWING ARE ADDITIONAL HINTS SUPPORTED BY ROMIO */

/* buffer size for data sieving in independent reads */
MPI_Info_set(info, "ind_rd_buffer_size", "2097152");

/* buffer size for data sieving in independent writes */
MPI_Info_set(info, "ind_wr_buffer_size", "1048576");

/* NOW OPEN THE FILE WITH THIS INFO OBJECT */
MPI_File_open(MPI_COMM_WORLD, "/pfs/datafile", 
	      MPI_MODE_CREATE | MPI_MODE_RDWR, info, &fh);

MPI_Info_free(&info);  /* free the info object */