[ewg] [PATCH] Allow mvapich2 process manager selection

Jonathan Perkins perkinjo at cse.ohio-state.edu
Thu Sep 11 07:24:28 PDT 2008


The mvapich2-1.2 release contains a change in the default process manager used.
At this time a user that would like to use mpiexec instead of the new process
manager needs to provide an option to configure.  This patch allows for that to
happen through the install script.

Signed-off-by: Jonathan Perkins <perkinjo at cse.ohio-state.edu>
---
 install.pl |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/install.pl b/install.pl
index 7cb97da..906724a 100755
--- a/install.pl
+++ b/install.pl
@@ -1303,6 +1303,7 @@ my %intel = ('icc' => 0, 'icpc' => 0, 'ifort' => 0);
 
 # mvapich2 environment
 my $mvapich2_conf_impl = "ofa";
+my $mvapich2_conf_pm = "mpirun";
 my $mvapich2_conf_romio = 1;
 my $mvapich2_conf_shared_libs = 1;
 my $mvapich2_conf_ckpt = 0;
@@ -1793,6 +1794,31 @@ sub mvapich2_config
         }
     }
 
+    print "\nPlease choose a process manager:\n\n";
+    print "1) New scalable mpirun_rsh framework\n";
+    print "2) Traditional mpd/mpiexec\n";
+
+    $done = 0;
+
+    while (not $done) {
+	print "Implementation [1]: ";
+	$ans = getch();
+
+        if (ord($ans) == $KEY_ENTER or $ans eq "1") {
+            $mvapich2_conf_pm = "mpirun";
+            $done = 1;
+        }
+
+        elsif ($ans eq "2") {
+            $mvapich2_conf_pm = "mpd";
+            $done = 1;
+        }
+
+        else {
+            $done = 0;
+        }
+    }
+
     print "\nEnable ROMIO support [Y/n]: ";
     $ans = getch();
     if ($ans =~ m/Nn/) {
@@ -1824,6 +1850,7 @@ sub mvapich2_config
                 chomp $tmp;
                 if (-d "$tmp") {
                     $mvapich2_conf_blcr_home = $tmp;
+		    $mvapich2_conf_pm = "mpd";
                     $done = 1;
                 }
                 else {
@@ -1909,6 +1936,7 @@ sub mvapich2_config
     flock CONFIG, $LOCK_EXCLUSIVE;
 
     print CONFIG "mvapich2_conf_impl=$mvapich2_conf_impl\n";
+    print CONFIG "mvapich2_conf_pm=$mvapich2_conf_pm\n";
     print CONFIG "mvapich2_conf_romio=$mvapich2_conf_romio\n";
     print CONFIG "mvapich2_conf_shared_libs=$mvapich2_conf_shared_libs\n";
     print CONFIG "mvapich2_conf_ckpt=$mvapich2_conf_ckpt\n";
@@ -2195,6 +2223,10 @@ sub select_packages
                     $mvapich2_conf_impl = $selected;
                     next;
                 }
+		elsif ($package eq "mvapich2_conf_pm") {
+		    $mvapich2_conf_pm = $selected;
+		    next;
+		}
                 elsif ($package eq "mvapich2_conf_romio") {
                     $mvapich2_conf_romio = $selected;
                     next;
@@ -2987,6 +3019,7 @@ sub build_rpm
             $cmd .= " --define 'auto_req 0'";
             $cmd .= " --define 'mpi_selector $prefix/bin/mpi-selector'";
             $cmd .= " --define '_prefix $prefix/mpi/$compiler/$parent-$main_packages{$parent}{'version'}'";
+	    $cmd .= " --define '_pm --with-pm=$mvapich2_conf_pm'";
         }
         elsif ($parent eq "openmpi") {
             my $compiler = (split('_', $name))[1];
-- 
1.5.5.1


-- 
Jonathan Perkins
http://www.cse.ohio-state.edu/~perkinjo



More information about the ewg mailing list