#1601: test system ignores nprocs unless MPI is found --------------------+------------------------------------------------------- Reporter: rhaas | Owner: Type: defect | Status: new Priority: minor | Milestone: Component: Cactus | Version: development version Keywords: | --------------------+------------------------------------------------------- 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.