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