Robert Latham wrote:

> On Sun, Aug 26, 2007 at 06:44:18PM +0200, Bernd Schubert wrote:
>> I'm presently trying to add lustre support to open-mpi's romio using this
>> patch http://ft.ornl.gov/projects/io/src/adio-lustre-mpich2-v02.patch.
>> 
>> It basically applies, only a few C files have been renamed in open-mpi,
>> but the autotools build system gives me headaches.
> 
> Boy tell me about it (says the guy who's job it is to work on it).

I don't know much about it myself, I only read a discussion about it on the
lustre mailing list.

> 
>> Fine, adding a similar entry for lustre is easy, but now we need to
>> define BUILD_XFS. So where does this come from?
>> There is romio/romio/Makefile.in
> 
> I don't know where you got BUILD_XFS.  In MPICH2, we don't use that
> symbol anywhere.

This was supposed to be BUILD_LUSTRE, taken as example from BUILD_XFS. I was
a bit overworked that weekend.

>  
>> BUILD_UFS_FALSE = @BUILD_UFS_FALSE@
>> BUILD_UFS_TRUE = @BUILD_UFS_TRUE@
>> BUILD_XFS_FALSE = @BUILD_XFS_FALSE@
>> BUILD_XFS_TRUE = @BUILD_XFS_TRUE@
>> CC = @CC@
> 
> These look like OpenMPI additions.  Perhaps they can chime in.
> 
> In MPICH2-land we build up FILE_SYS_DIRS in configure.in, and then do
> a "for dir in $FILE_SYS_DIRS", with each directory contributing some
> .o files to the io library.  Hey, it works.

Yes, the patch from ft.ornl.gov also does it that way, well its for mpich2.

> 
>> Not a single line about filesystems, *grumble*.
> 
> Again speaking about MPICH2 land, all fileystem logic (such as it is)
> lives in configure.in.  it's regrettably scattered amongst some
> architecture-specific sections.

To make it short, I could get everything to compile and to work (though more
or less a brute force way), but I'm still not pleased with the performance.
So far I didn't have the time yet to investigate the reason why the
performance is still low, though, I suspect openmpi/ofed problems, because
as long as I run the computations on a single system without
networking/infiniband the i/o performance is rather good.
I first need to figure out why writing to nfs-exported lustre is slow and
then I will care about MPI. Well, I already know the reason for the nfs
problem, now I need to write a proper patch. I guess I will start to work
on the MPI problem on Wednesday.

> 
>> Now lets assume I eventually find the proper autotools files to
>> patch lustre support in, how can I distribute that patch?
> 
> Distribute changes to the primary sources.  i.e. fix configure.in or
> Makefile.am and let autotools regenerate the necessary files.
> ROMIO's got an AC_PREREQ in there, so things can't go horribly bad

So I need to write an explanation what to do after applying the patch? Who
actually reads documentation ;) ?

> 
> (like in the old days when people would try to autoconf ROMIO's
> ancient autoconf-1.7 era configure with autoconf-2.13 -- you heard me.
> You think it's bad now?  Why, back in '00 you were lucky if you ... ok
> you get the idea. i'll quit with the old man bit.)
> 
>> In principle I would have to distribute a patch that also patches
>> the auto-generated configure, automake.in, etc files.
> 
> As you understand already, that's untennable.

Well, the original patch does it that way.

> 
>> Any plans for a sane build system?
> 
> I'm not proud of how ROMIO's configure.in has evolved over the years.
> not proud at all.  But I can gaurantee you that the alternatives are
> worse.  Don't speak to me of scons and cmake!

I would have suggested cmake. Whats so bad about it?

> 
> I hope the MPICH2 perspective on ROMIO's build system helps a bit, but
> I think the integration with OpenMPI may have changed things somewhat.
> 
> Good luck

Thanks!

Cheers,
Bernd


PS: The patch is here:
http://www.pci.uni-heidelberg.de/tc/usr/bernd/downloads/lustre/openmpi/

Apply it and then run in ompi/mca/io/romio/romio/

aclocal
autoheader
autoconf
libtoolize --force
automake -a -c




Reply via email to