The point about
PARALLEL PROCESSORS is that it's perfectly valid to run TELEMAC in 'parallel' mode with one thread, but that the runcode.py script wasn't written with that possibility in mind. The problem lies in these two lines of
runcode.py61 if ncsize > 1 and 'parallel' not in cfg['MODULES'].keys(): return False
62 if ncsize < 2 and 'paravoid' not in cfg['MODULES'].keys(): return False
The fix may be as simple as changing the first inequality to 'ncsize > 0', but I'd need to look more closely to make sure that this change wouldn't have any unintended consequences.
As for the MPICH options, it isn't really the case that
-mapall replaces
-localonly. The
-mapall option creates on each remote host a temporary mapping of each network drive mapped on the local host, to facilitate sharing of input files between machines in Windows. This
link (to a PDF file) has a little more detail on the Windows-specific options for mpiexec. It has nothing to do with specifying host machine names, but was included in the
mpi_hosts part of the config file as part of a quick workaround.
-localonly, as I'm sure you know, means that MPICH will only launch processes on the local host. Unless the configuration of MPICH itself is altered, this is the default mode of operation of mpiexec.exe. I'm not quite sure why it was deleted from the
mpi_hosts line in the TELEMAC config file, but for a 'real' parallel run it is up to the user to set this line to suit their own system (i.e. with real host names etc.). Remember that the config files distributed with TELEMAC are all really just templates, and almost always need editing by the user. Hopefully we will explain the setup procedure more clearly when we release fresh documentation of the Python scripts.
For your purposes (running on one processor with multiple threads), you should need to have only
I hope that this helps to clarify things.