[Pvfs2-developers] configuring MPICH2 (ROMIO) to work with pvfs2

Rob Latham robl at mcs.anl.gov
Wed Dec 7 11:19:56 EST 2011

On Tue, Dec 06, 2011 at 05:48:29PM -0500, Orko Momin wrote:
> I tried configuring mpich2 with the following options: ./configure
> --with-pvfs2=/usr/local --disable-f77 --disable-fc
> --with-file-system=ufs+nfs+testfs+pvfs2 . From what I understand we have to
> provide it with the same prefix that we provide during the pvfs2
> installation. 

Those options look right to me.  Couple things to double check:

-- Can you confirm that you have 'pvfs2-config' installed as
/usr/local/bin/pvfs2-config ?  

- Can you confirm that 'pvfs2-config --cflags' outputs
  -I/usr/local/include   ?

> Currently while making mpich2 after configuring it as above I
> get the following errors:
> In file included from ad_pvfs2_read.c:12:0:
> ad_pvfs2_common.h:21:5: error: expected specifier-qualifier-list before
> ‘PVFS_credentials’
> ad_pvfs2_common.h:29:51: error: expected ‘)’ before ‘*’ token
> ad_pvfs2_read.c: In function ‘ADIOI_PVFS2_ReadContig’:
> ad_pvfs2_read.c:62:11: error: ‘ADIOI_PVFS2_fs’ has no member named
> ‘credentials’
> make[5]: *** [ad_pvfs2_read.o] Error 1
> make[5]: Leaving directory
> `/usr/src/mpich2-1.4.1p1/src/mpi/romio/adio/ad_pvfs2'

that's not one I've seen before.  Both PVFS_object_ref and
PVFS_credentials are defined in pvfs2-types.h. 

We do conditionally include pvfs2.h: (in ad_pvfs2.h)

#ifdef HAVE_PVFS2_H
#include "pvfs2.h"

So maybe your configure did not define HAVE_PVFS2_H ?  Normally in
that case we abort the configure (you asked for PVFS2 but we can't
find the headers). 

> Before tackling the errors I had a few preliminary questions. I was
> wondering what version of PVFS2 and MPICH2 are actually known to work
> together? Am I trying a more advanced version of either of the two and
> hence running into an error? From what I have there are some patch files
> for ROMIO but none for mpich2-1.4.1p1. All the patches are for earlier
> versions.

Yeah, you only need patches if for some reason you wanted to build an
MPICH2 from 6 years ago.   You would actually have to try really hard
to find a PVFS and MPICH2 pair that were not compatible.

There were changes to the PVFS API but when those changes were
introduced, so to was a backwards-compatibility header. 

> Secondly, I see a sort of cyclic dependence between pvfs2 and
> mpich2 where pvfs2 needs to be configured with the --with-mpi option where
> we specify the mpi installation directory and as seen above mpich2 needs
> the -with-pvfs2 option. My question is what is the correct order of doing
> the two installations? Is it pvfs2 and then mpich2 (seems like so)? Also am
> I setting these configure options incorrectly?

The '--with-mpi' option helps build some PVFS MPI tests.   The build
and install order goes:

- configure/build/install PVFS
- configure/build/install  MPICH2
- then if you want the MPI-based tests, configure/build/install PVFS
  one more time.


Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA

More information about the Pvfs2-developers mailing list