Testing LaunchProcess
This function is used to launch analysis engines in the
case where the analysis is distributed across multiple hosts. The analysis
may be distributed across several machines if portions of the analysis
are independent. For example, frequency sweeps, parametric analysis and
domain decomposition allow different portions of the analysis to be distributed
across machines. The analysis in a batch job will be distributed to multiple
processors or hosts if the analysis includes a setup that may be distributed
(for example, a frequency sweep or parametric analysis) and the -Distributed
option is included in the
desktop command line. The list of machines is displayed in an "info"
message near the beginning of the batch log. The batch log may also
contain info messages when portions of the analysis distributed to different
machines start or finish. These messages usually include the name of
the host when the analysis ran or will run. One can verify that the analysis
is actually running on the expected host or hosts using the Linux ps
command or the Windows Task Manager.
In general, one analysis engine is started for each occurrence
of each host in the list of machines available for distribution. For
example, if the list of hosts is hostA hostA hostA hostB hostB
, then
a total of five engines would be started, three on hostA
and two on hostB
.
In some cases, an additional engine is started to perform the portion
of the analysis which is not distributed; if this is the case, the non-distributed
engine is idle during the portion of the analysis which is distributed.
If this occurs in the case where the list of hosts is hostA hostA hostA
hostB hostB
, then a total of six engines would be started, but at most
five engines would be active at any given time. When each analysis engine
is running, it may start additional child processes to do a portion of
the analysis, but these are not counted as additional analysis engines
because the parent of the subengine is inactive (waiting for the subengine
results) when the subengine is active.
Testing should be sufficient to demonstrate that the scheduler proxy library can start multiple engine processes on the desktop host, and can also start multiple engine processes on other hosts.