In charge of ticket 1888 (see at
I have put the resulting code in bitbucket at:
The work in this repo consisted in refreshing ROMIO to a newer
version: the one from the very last MPICH2 release (mpich2-1.3b1).
1. runs fine except one minor error (see the explanation below) on
2. runs fine with Lustre, but:
. had to add a small patch in romio/adio/ad_lustre_open.c
3. see below how to efficiently run with Lustre.
You are invited to test and send comments
======== The minor error ===================
The test error.c fails because OpenMPI does not handle correctly the
"two level" error functions of ROMIO:
error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
myname, __LINE__, MPI_ERR_ARG,
OpenMPI limits its view to MPI_ERR_ARG, but the real error is
========= How to test performances with Lustre ===================
1) Compile with Lustre ADIO driver. For this, add the flag
your configure command.
2) Of course, you should have a Lustre file system mounted on all the
nodes you will run on.
3) Take an application like coll_perf.c (in the test directory). In this
application, change the
three dimensions to 1000, that will create a file of 4 GB (big
files are required in order
to reach good performances with Lustre).
4) Put the highest possible striping_factor in the hint. For this, one
solution is :
- If your Lustre file system have 16 OST, create a hint file with the
- Export the path to this file in the variable ROMIO_HINTS:
If you do not specify the striping_factor, Lustre will set the default
value (often 2 only).
You can verify the striping_factor set by Lustre with the following
lfs getstripe <file> (look at the value of lmm_stripe_count)
Note: The striping_factor is set once at file creation and cannot be
5) Run your test, specifying a file located in the Lustre file system.