1
1

Add ability to multiply number of nodes when running scaling tests

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
Ralph Castain 2017-11-12 16:38:37 -08:00
родитель 9c84e1485b
Коммит 4381b2c60f

Просмотреть файл

@ -22,6 +22,7 @@ my $rawoutput = 0;
my $myresults = "myresults"; my $myresults = "myresults";
my $ppn = 1; my $ppn = 1;
my @csvrow; my @csvrow;
my $multiplier = 1;
my @tests = qw(/bin/true ./orte_no_op ./mpi_no_op ./mpi_no_op ./mpi_no_op); my @tests = qw(/bin/true ./orte_no_op ./mpi_no_op ./mpi_no_op ./mpi_no_op);
my @options = ("", "", "", "-mca mpi_add_procs_cutoff 0 -mca pmix_base_async_modex 1 -mca pmix_base_collect_data 0", "-mca mpi_add_procs_cutoff 0 -mca pmix_base_async_modex 1 -mca async_mpi_init 1 -mca async_mpi_finalize 1 -mca pmix_base_collect_data 0"); my @options = ("", "", "", "-mca mpi_add_procs_cutoff 0 -mca pmix_base_async_modex 1 -mca pmix_base_collect_data 0", "-mca mpi_add_procs_cutoff 0 -mca pmix_base_async_modex 1 -mca async_mpi_init 1 -mca async_mpi_finalize 1 -mca pmix_base_collect_data 0");
@ -52,6 +53,7 @@ GetOptions(
"results=s" => \$myresults, "results=s" => \$myresults,
"rawout" => \$rawoutput, "rawout" => \$rawoutput,
"ppn=s" => \$ppn, "ppn=s" => \$ppn,
"multiplier=s" => \$multiplier,
) or die "unable to parse options, stopped"; ) or die "unable to parse options, stopped";
if ($HELP) { if ($HELP) {
@ -69,6 +71,7 @@ if ($HELP) {
--results=file File where results are to be stored in comma-separated value format --results=file File where results are to be stored in comma-separated value format
--rawout Provide raw timing output to the file --rawout Provide raw timing output to the file
--ppn=n Run n procs/node --ppn=n Run n procs/node
--multiplier=n Run n daemons/node (only for DVM and mpirun)
"; ";
exit(0); exit(0);
} }
@ -124,6 +127,9 @@ foreach $starter (@starterlist) {
} elsif ($usempirun && $starter eq "mpirun") { } elsif ($usempirun && $starter eq "mpirun") {
push @starters, $starter; push @starters, $starter;
$opt = $starteroptionlist[$idx] . " --npernode " . $ppn; $opt = $starteroptionlist[$idx] . " --npernode " . $ppn;
if ($multiplier gt 1) {
$opt = $opt . " --mca rtc ^hwloc --mca ras_base_multiplier " . $multiplier;
}
push @starteroptions, $opt; push @starteroptions, $opt;
} elsif ($useaprun && $starter eq "aprun") { } elsif ($useaprun && $starter eq "aprun") {
push @starters, $starter; push @starters, $starter;
@ -267,14 +273,18 @@ foreach $starter (@starters) {
print "STARTER: $starter\n"; print "STARTER: $starter\n";
# if we are going to use the dvm, then we # if we are going to use the dvm, then we
if ($starter eq "prun") { if ($starter eq "prun") {
my $dvm = "orte-dvm --system-server";
if ($multiplier gt 1) {
$dvm = $dvm . " --mca rtc ^hwloc --mca ras_base_multiplier " . $multiplier;
}
# need to start it # need to start it
if ($myresults) { if ($myresults) {
print FILE "\n\norte-dvm --system-server\n"; print FILE "\n\n$dvm\n";
} }
if (!$SHOWME) { if (!$SHOWME) {
unless ($pid = fork) { unless ($pid = fork) {
unless (fork) { unless (fork) {
exec "orte-dvm --system-server 2>&1"; exec "$dvm 2>&1";
die "no exec"; die "no exec";
} }
exit 0; exit 0;