[PATCH] Add --mpi configure switch

Jeffrey D. Oldham oldham at codesourcery.com
Mon Jan 5 21:12:38 UTC 2004


Richard Guenther wrote:
> Hi!
> 
> This (finally) adds --mpi configure switch to enable POOMA_MPI.  It checks
> for mpiCC or mpic++ in either $MPICH_ROOT/bin or the current $PATH and
> uses the first one found as new $cpp and $link.
> 
> I didn't change the Cheetah configure switch which now has the slightly
> confusing name --messaging.  Maybe we want to change this to --cheetah.
> 
> Ok?

Yes.  This is good progress.

> I'll start full testing of serial, MPI and Cheetah to see if I forgot a
> part of the changes after the pending stuff is committed.
> 
> Thanks,
> 
> Richard.
> 
> 
> 2004Jan02  Richard Guenther <richard.guenther at uni-tuebingen.de>
> 
> 	* configure: add --mpi switch to enable MPI messaging using
> 	mpiCC/mpic++.
> 
> --- /home/richard/src/pooma/cvs/r2/configure	2003-12-30 18:19:29.000000000 +0100
> +++ configure	2004-01-02 00:40:10.000000000 +0100
> @@ -209,8 +208,9 @@
>  $hdf5nm = "--hdf5";
>  $fftwnm = "--fftw";
>  $cheetahnm = "--messaging";
> +$mpinm = "--mpi";
>  $strictnm = "--strict";
>  $archfnsnm = "--arch-specific-functions";
> 
>  ### configure options
>  $dbgprntnm = "-v";		# turn on verbose output from configure
> @@ -236,10 +237,11 @@
>    [$sharednm,    "",         "create a shared library."],
>    [$finternm,    "",         "include fortran support libraries."],
>    [$nofinternm,  "",         "do not include the fortran libraries."],
>    [$preinstnm,   "",         "build preinstantiations of several classes."],
>    [$serialnm,    "",         "configure to run serially, no parallelism."],
> -  [$threadsnm,  "",         "include threads capability, if available."],
> +  [$threadsnm,   "",         "include threads capability, if available."],
>    [$cheetahnm,   "",         "enable use of CHEETAH communications package."],
> +  [$mpinm,       "",         "enable use of MPI communications package."],
>    [$schednm,     "<scheduler>", "use <scheduler> for thread scheduling."],
>    [$pawsnm,      "",         "enable PAWS program coupling, if available."],
>    [$pawsdevnm,   "",         "enable PAWS program coupling for PAWS devel."],
> @@ -1276,13 +1266,22 @@
>      {
>        $cheetah = 1;
>      }
> -  print "Set cheetah = $cheetah\n" if $dbgprnt;
> +  if (scalar @{$arghash{$mpinm}} > 1)
> +    {
> +      $mpi = 1;
> +    }
>    $messaging = $cheetah + $mpi;
> +  if ($messaging>1 or $messaging and scalar @{$arghash{$serialnm}}> 1)
> +    {
> +      printerror "$cheetahnm and/or $mpinm and/or $serialnm given.  Use only one.";
> +    }
> +  print "Set messaging = $messaging\n" if $dbgprnt;
> 
>    # add a define indicating whether CHEETAH/MPI is available, and configure
>    # extra options to include and define lists
>    my $defmessaging = $messaging;
>    my $defcheetah = 0;
> +  my $defmpi = 0;
>    if ($cheetah)
>      {
>        if (exists $ENV{"CHEETAHDIR"})
> @@ -1299,7 +1298,6 @@
>          }
> 
>        $defcheetah = 1;
> -
>        $scheduler = "serialAsync";
> 
>        # add in the extra compilation settings for CHEETAH.
> @@ -1315,8 +1313,40 @@
>  	  $link = $cheetah_link;
>          }
>      }
> +  elsif ($mpi)
> +    {
> +      my $mpiCC = "\$(MPICH_ROOT)/bin/mpiCC";
> +      if (system("test -x $MPICH_ROOT/bin/mpiCC") == 0)
> +        {
> +          $mpiCC = "\$(MPICH_ROOT)/bin/mpiCC";
> +        }
> +      elsif (system("test -x $MPICH_ROOT/bin/mpic++") == 0)
> +        {
> +          $mpiCC = "\$(MPICH_ROOT)/bin/mpic++";
> +        }
> +      elsif (system("which mpiCC") == 0)
> +        {
> +          $mpiCC = "mpiCC";
> +        }
> +      elsif (system("which mpic++") == 0)
> +        {
> +          $mpiCC = "mpic++";
> +        }
> +      else
> +        {
> +          die "There is no known MPI location.  Select one by setting MPICH_ROOT or adjusting your PATH.\n";
> +        }
> +
> +      $defmpi = 1;
> +      $scheduler = "serialAsync";
> +
> +      # use special compiler script for MPI.
> +      $cpp  = $mpiCC;
> +      $link = $mpiCC;
> +    }
>    add_yesno_define("POOMA_MESSAGING", $defmessaging);
>    add_yesno_define("POOMA_CHEETAH", $defcheetah);
> +  add_yesno_define("POOMA_MPI", $defmpi);
>  }
> 
> 


-- 
Jeffrey D. Oldham
oldham at codesourcery.com




More information about the pooma-dev mailing list