- changed status to open
- removed comment
test system ignores nprocs unless MPI is found
the test system script RunTestUtils.pl checks if the configuration is MPI enabled by looking into some build files (see function ParseExtras and its use of file $config/bindings/Configuration/Capabilities/cctki_MPI.h).
However in line 549
if ($have_mpi)
{
$config_data->{'NPROCS'} =
&defprompt(' Enter number of processors ($nprocs)', $nprocs);
}
else
{
print "No MPI available\n";
if ($nprocs > 1)
{
die("Cannot run on $nprocs processes without an MPI implementation\n");
}
}
it only sets $config_data->{NPROCS} if MPI was found and leaves it undefined otherwise. This seems to confuse later parts of the script which try to decide which tests to run and one gets eg
Summary for configuration sim
Time -> Mon Apr 28 21:35:38 PDT 2014
Host -> nid27637
Processes ->
User -> rhaas
Total available tests -> 287
Unrunnable tests -> 133
Runnable tests -> 154
Total number of thorns -> 209
Number of tested thorns -> 52
Number of tests passed -> 149
Number passed only to
set tolerance -> 95
Number failed -> 5
and
Tests missed for different number of processors required:
checkpointML-EE in AHFinderDirect
(EinsteinAnalysis/AHFinderDirect/test/checkpointML-EE.par)
Requires 1 processors
test_cc_o5 in CarpetProlongateTest
(CarpetExtra/CarpetProlongateTest/test/test_cc_o5.par)
Requires 2 processors
I suggest setting congif_data->{NPROCS} to 1 if no MPI is found.
Note that this really only happens if one manages to compile without MPI (which implies no Carpet) or (as in my case) uses simfactory (with 1 process) but has rsync filter rules that prevent it from copying all of configs/sim to the simulation base dir.
Keyword:
Comments (4)
-
-
- changed status to open
- removed comment
-
reporter - changed status to resolved
- removed comment
Applied as rev 5112 of the flesh.
-
reporter - edited description
- changed status to closed
- Log in to comment
NPROCS should always be set.