Hi all,
In charge of ticket 1888 (see at
https://svn.open-mpi.org/trac/ompi/ticket/1888) ,
I have put the resulting code in bitbucket at:
http://bitbucket.org/devezep/new-romio-for-openmpi/
The work in this repo consisted in refreshing ROMIO to a newer
version: the one from the very last MPICH2 release (mpich2-1.3b1).
Testing:
1. runs fine except one minor error (see the explanation below) on
various FS.
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
Enjoy !
Pascal
======== 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,
"**iobaddisp", 0);
OpenMPI limits its view to MPI_ERR_ARG, but the real error is
"**iobaddisp".
========= How to test performances with Lustre ===================
1) Compile with Lustre ADIO driver. For this, add the flag
--with-io-romio-flags="--with-file-system=ufs+nfs+lustre" to
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
following line:
striping_factor 16
- Export the path to this file in the variable ROMIO_HINTS:
export ROMIO_HINTS=my_directory/my_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
command:
lfs getstripe <file> (look at the value of lmm_stripe_count)
Note: The striping_factor is set once at file creation and cannot be
changed after.
5) Run your test, specifying a file located in the Lustre file system.