Eric,

Thanks for such a comprehensive reply.  I'll be attempting these shortcuts you 
mentioned; I'm in the unique situation of running this from a VM image, so 
if/when anything blows up I can just terminate and reload.  I'll let the list 
know if either of them work.

-Adam

-----Original Message-----
From: b...@mcs.anl.gov
To: Adam Scovel <z167...@students.niu.edu>
Date: Wed, 2 Sep 2009 10:37:58 -0500 (CDT)
Subject: Re: [gt-user] MPICH-G2/GT 4.0.7 and Fortran

Adam,

The official, correct, supported way to do this is to rebuild the globus 
libraries required by mpich-g2, with the correct F77 and F90 compilers 
specified at build time.  There is a tutorial on how to do this at 
http://www.mcs.anl.gov/~blau/Building_MPI_Flavors.txt (the process has not 
changed since it was written--just use a more recent installer package).  There 
are two potential shortcuts, which I will mention as they may help lend an 
understanding of how Globus builds are structured.  I do not recommend trying 
the shortcuts, and am mentioning them here without offering to support them.

It may be possible to only rebuild the Globus Core package, as opposed to 
everything else.  Globus Core is the Globus Toolkit package that does all the 
compiler detection for the rest of the toolkit.  As such, all other Globus 
packages depend on it (at least all C packages.)  I don't think that there are 
any Globus Toolkit libraries that are built differently depending on the 
absence or presence of an F77 or F90 compiler, so what you're really looking 
for is for Globus Core to define which F77 and F90 compiler should be used for 
the "flavor" of libraries you are using for mpich-g2.

Which leads us to the second possible shortcut:  it may be possible to not 
rebuild anything, but simply edit the file where the specifications for the 
flavor are defined.  If you look at $GLOBUS_LOCATION/etc/globus_core/ you will 
see one or more flavor_<flavorname>.gpt files.  If you open the one that you 
are using for mpich-g2 (probably something like flavor_mpicc32.gpt), it should 
be pretty obvious how the compilers are defined.

The fortran compiler(s) you use should be the one(s) from the same suite as the 
C compiler you are using.  I am not an expert on fortan compilers, nor on 
differences between F77 and F90, nor on gfortran in particular.  Typically one 
builds MPICH-G2 to use a vendor MPI for the underlying intra-cluster messaging. 
 If you are specifying gcc as your compiler, (or using a gcc flavor of Globus), 
you won't be getting that benefit.  Thus, typically, the fortran compiler used 
by Globus for MPICH-G2 would be mpif77 and mpif90, from the vendor MPI.  (or 
mpixlf_r and mpxlf90_r for XL based compilers, etc).  The vendor MPI fortran 
compiler may well itself be a wrapper around, for example, gfortran, but you 
would only specify that your Globus build should use "gfortran" if you did not 
want the benefit of vendor MPI intra-cluster communication.

I highly recommend making a backup of the GLOBUS_LOCATION you are using for 
mpich-g2 before doing _anything_ to it (including rebuilding from scratch.)

One thing I don't recall at the moment is whether you will need to rebuild 
mpich-g2 regardless of what method you use to define your fortran compilers for 
the Globus Toolkit.  MPICH-G2 creates its compiler wrapper scripts at build 
time, based on the compilers defined in the Globus Core flavor it has been told 
to use.  If it does not find a fortran compiler, it may not build some fortran 
libraries (I don't recall), but it certainly won't end up with a mpif77 (or 
mpif90) script that works.

So yes, there _may_ be some shortcuts, but the known safe, supported method is 
to rebuild from scratch.  If I were in your situation, I would rebuild from 
scratch--there are simply too many places where things could be wrong if you 
try to take shortcuts.  Also, any shortcuts are unsupported (again, too many 
places where things could be wrong to be able to help you debug).


Eric





----- "Adam Scovel" <z167...@students.niu.edu> wrote:

> Hi all,
> 
> I'm attempting to build an mpi-enhanced linear algebra library and
> have ran into a wall.  My build of mpich-g2 lacks the mpif77/mpif90
> compilers, and a two year old post to this mailing list indicates that
> I may need to rebuild globus and mpich-g2 to get them:
> 
> Brian R. Toonen wrote:
> >MPICH-G2 does support F77 and F90.  However, in order to maintain
> >consistency with Globus, MPICH-G2 will only use the compilers
> reported by
> >Globus for the specified flavor.  This means that Globus must be told
> about
> >any Fortran compilers when that flavor of Globus is being built.  I'm
> not an
> >expert on building Globus, but I believe this is accomplished by
> setting the
> >F77 and F90 environment variables before running the Globus
> configure
> >script.
> 
> Before I go through the effort of rebuilding and reconfiguring globus,
> I was hoping to get an up-to-date assessment on this.  Is this
> still/was this ever the case with GT 4.0.7?  Have any shortcuts been
> found?  If I need to rebuild globus, I assume the env. vars are just
> pointers to gfortran, correct?
>
> Thank you,
> -Adam



Reply via email to