Hello,
I took a look at the ADIO Lustre driver last week in an attempt to make
collective I/O work for my application. I believe that I''ve gotten the
driver to do the right thing now. With the following patch all of the
tests under romio/test pass in my environment. My application, which
requires reasonably complex file views, also appears to write correct
files now on a Lustre filesystem using collective I/O.
Problems in the noncontig and i_noncontig tests are fixed by changes to
ad_lustre_wrstr.c. Basically, I made changes to that file so that it now
more closely matches adio/common/ad_write_str.c. The only differences in
these files should now be in the Lustre-specific parts. Problems in the
large_array test are fixed in ad_lustre_aggregate.c and
ad_lustre_wrcoll.c. The major problem was in the handling of the
"buf_idx" arrays, which were not correctly tracking the data out of a
process''s data buffer being sent to multiple other processes. My tests
involved four MPI nodes, four Lustre OSTs and both four and eight MPI
processes.
I also patched ad_lustre_aggregate in its calculation of
"avail_cb_nodes" as previously provided by Pascal Deveze. I
don''t know
whether that has had any effect on my changes, since I did no testing
without Pascal''s changes.
There are some other changes, such as formatting and the addition of
some assertions. They are included in the attached patch, but I could
take them out if desired.
The patch should apply cleanly to sources out of a fresh mpich2-1.2.1
tarball. I''m not an old hand at MPI, so please review my patch
carefully.
--
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: adio_lustre.patch
Type: text/x-patch
Size: 38249 bytes
Desc: not available
Url :
http://lists.lustre.org/pipermail/lustre-discuss/attachments/20100104/ae25ebf5/attachment-0001.bin