Commit 86e12950 authored by jimeliot's avatar jimeliot

2.10RC->Trunk

Updated customlauncher for systems at AWE
Added host profiles for Pillow B, Sprig, Spruce A and Spruce B systems
at AWE.


git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@27715 18c085ea-50e0-402c-830e-de6fd14e8384
parent 865bc5c3
......@@ -2,7 +2,7 @@
# Class: JobSubmitter_sbatch_AWE
#
# Purpose: Custom "sbatch" job submitter for AWE
#
#
# Programmer: Brad Whitlock
# Date: Tue Jan 15 15:29:23 GMT 2013
#
......@@ -19,7 +19,7 @@ class JobSubmitter_sbatch_AWE(JobSubmitter_sbatch):
ppn = "8"
if self.parallel.nn != None:
ppn = int(math.ceil(float(self.parallel.np) / float(self.parallel.nn)))
def TFileLoadModules(self, tfile):
tfile.write("#SBATCH -J visit # Job Name\n")
tfile.write("ulimit -l unlimited\n")
......@@ -28,54 +28,76 @@ class JobSubmitter_sbatch_AWE(JobSubmitter_sbatch):
tfile.write("export I_MPI_PLATFORM=auto\n")
tfile.write("module load slurm intel/11.1\n")
tfile.write("module load intelmpi/4.0.3-intel\n")
###############################################################################
# Class: JobSubmitter_mpirun_AWE
#
# Purpose: Custom "mpirun" job submitter for AWE
#
#
# Programmer: Satheesh Maheswaran, Paul Selby
# Date: Tue Jan 15 15:29:23 GMT 2013
#
###############################################################################
class JobSubmitter_mpirun_AWE(JobSubmitter_mpirun):
def __init__(self, launcher):
super(JobSubmitter_mpirun_AWE, self).__init__(launcher)
def Executable(self):
return ["mpirun.awe"]
###############################################################################
# Class: JobSubmitter_qsub_AWE
#
# Purpose: Custom "qsub" job submitter for AWE
#
#
# Programmer: Satheesh Maheswaran, Paul Selby
# Date: Tue Jan 15 15:29:23 GMT 2013
#
###############################################################################
# Modifications:
# Jim Eliot, Tue Aug 26 16:30:37 GMT 2014
# Added support for Spruce.
# Tweak to error message.
#
# Paul Selby, Thu Sep 11 11:18:22 BST 2014
# Fixed bug in error message for ppn > ncores
#
# Paul Selby, Tue Sep 23 10:37:51 BST 2014
# Added I_MPI_ADJUST_ALLTOALLV for Sprig/Spruce to fix hang with transparent
# plots and scalable rendering. Using Intel MPI 4.1.3 also fixes
#
# Jim Eliot, Wed Sep 24 10:01:54 BST 2014
# Changed Sprig and Spruce Intel MPI module to version 4.1.3.
# Removed I_MPI_ADJUST_ALLTOALLV as not required with Intel MPI 4.1.3.
#
# Paul Selby, Thu 22 Oct 13:47:15 BST 2015
# Removed ChileanPine as has been decommissioned
#
###############################################################################
class JobSubmitter_qsub_AWE(JobSubmitter_qsub):
def __init__(self, launcher):
super(JobSubmitter_qsub_AWE, self).__init__(launcher)
ncores = 16
self.plauncher, self.sublauncher = self.LauncherAndSubLauncher()
ncores = self.launcher.GetNumCores()
# Not 100% this should be in init method
if self.parallel.nn == None:
self.parallel.nn = int(math.ceil(float(self.parallel.np) / ncores))
# Check ppn is in range
ppn = int(self.PPN())
if ppn > ncores:
exit("Error: engine configured with %s on %s nodes (%sx)\n"
"Error: Number of procs must be no more than %sx number of nodes." %
exit("customlauncher -- Error: engine configured with %s on %s nodes (%sx)\n"
"customlauncher -- Error: Number of procs must be no more than %sx number of nodes." %
(self.parallel.np, self.parallel.nn, ppn, ncores), 1)
def mpirun(self):
return ["mpirun.awe"]
if self.sublauncher == "aprun":
return ["aprun"]
else:
return ["mpirun.awe"]
def TFileLoadModules(self, tfile):
......@@ -95,68 +117,178 @@ class JobSubmitter_qsub_AWE(JobSubmitter_qsub):
tfile.write("#MSUB -j oe # Joing stderr/stdout together\n")
tfile.write(". %s/init/bash\n" %GETENV("MODULESHOME"))
tfile.write("module purge\n")
tfile.write("module load intel/12.1\n")
tfile.write("module load intelmpi/4.0.3-intel\n")
tfile.write("module load intel/13.1\n")
tfile.write("module load intelmpi/4.1.3-intel\n")
elif self.launcher.IsRunningOnSprig():
tfile.write("#MSUB -E # Export MOAB environment variables\n")
tfile.write("#MSUB -N visit # Job Name\n")
tfile.write("#MSUB -A visit # Code name for accounting\n")
tfile.write(". %s/init/bash\n" %GETENV("MODULESHOME"))
tfile.write("module purge\n")
tfile.write("module load gcc/4.8.2\n")
tfile.write("module load intelmpi/4.1.3-gcc\n")
elif self.launcher.IsRunningOnSpruce():
tfile.write("#MSUB -E # Export MOAB environment variables\n")
tfile.write("#MSUB -N visit # Job Name\n")
tfile.write("#MSUB -A visit # Code name for accounting\n")
tfile.write(". %s/init/bash\n" %GETENV("MODULESHOME"))
tfile.write("module purge\n")
tfile.write("module load gcc/4.8.2\n")
tfile.write("module load intelmpi/4.1.3-gcc\n")
return
###############################################################################
# Class: AWELauncher
#
# Purpose: Custom launcher for AWE
#
#
# Programmer: Satheesh Maheswaran, Paul Selby
# Date: Tue Jan 15 15:29:23 GMT 2013
#
# Modifications:
# Paul Selby, Wed Feb 12 10:56:11 GMT 2014
# Added workaround to identify Sprig compute nodes
# (needed if cli launched on compute node - i.e. batch VisIt)
#
# Jim Eliot, Tue Aug 26 16:30:37 GMT 2014
# Added support for Spruce.
# Modifications to IsRunningOnSprig() to avoid false positive on Spruce.
# Tweak to error message.
#
# Paul Selby, Thu Sep 11 11:18:22 BST 2014
# Sets ncores to 16 if running on Spruce viz partition. Fixes job being held
# if ppn > 16
#
# Paul Selby, Thu 26 Mar 14:38:36 GMT 2015
# Set MOABHOMEDIR and added msub to path on Willow. Fixes issue first seen
# on WillowB when MOAB hostkeys activated
#
# Paul Selby, Thu 17 Sep 13:39:29 BST 2015
# Changed expected self.domainname for Sprig & Spruce due to change to fully
# qualified domain name following upgrade - fixes visitbatch
#
# Paul Selby, Thu 22 Oct 13:47:15 BST 2015
# Removed ChileanPine as has been decommissioned
#
###############################################################################
class AWELauncher(MainLauncher):
def __init__(self):
super(AWELauncher, self).__init__()
def username(self):
# Override username as os.getlogin() returns root on Willow/Blackthorn
# when running visitbatch (throws error on Ivy/Spruce)
return GETENV("USER")
def IsRunningOnWillow(self):
return self.sectorname() in ("willowa", "willowb")
def IsRunningOnBlackthorn(self):
return self.sectorname() in ("blackthorn")
def IsRunningOnIvy(self):
return self.sectorname() in ("ivy")
def IsRunningOnBonsai(self):
return self.sectorname() in ("bonsaia", "bonsaib")
def IsRunningOnSprig(self):
# Compute nodes are r[0-1]i[0-1]n[0-9]* => get this with batch VisIt
# Domain name check works on compute nodes.
return self.sectorname() in ("sprig") or self.domainname() in ("sprig.hpcs.awe.co.uk")
def IsRunningOnSpruce(self):
# Compute nodes are r[0-1]i[0-1]n[0-9]* => get this with batch VisIt
# Domain name check works on compute nodes.
return self.sectorname() in ("sprucea", "spruceb") or self.domainname() in ("sprucea.hpcs.awe.co.uk", "spruceb.hpcs.awe.co.uk")
def IsRunningOnWorkstation(self):
return GETENV("HPC_CLUSTER") == "LINUX_WORKSTATION"
def GetNumCores(self):
if self.IsRunningOnSprig():
self.ncores = 20
elif self.IsRunningOnSpruce():
# viz nodes have 16 cores
if self.parallelArgs.partition == "viz":
self.ncores = 16
else:
# visitbatch will run in parallel or serial queue
self.ncores = 20
else:
self.ncores = 16
return self.ncores
#Check to see if VisIt is starting on Login node, it's not allowed on ALL platforms
def IsVisItAllowed(self):
if not (self.IsRunningOnWorkstation() or self.IsRunningOnIvy() or self.IsRunningOnBonsai()):
if not self.generalArgs.env and self.generalArgs.exe_name == "gui":
msg = "###################################################\n"
msg += "Do not run the VisIt GUI here\n"
msg += "Run it on your local workstation (preferred/best performance)\n"
msg += "###################################################\n"
exit(msg,0)
def Customize(self):
ld_paths = self.splitpaths(GETENV("LD_LIBRARY_PATH"))
paths = self.splitpaths(GETENV("PATH"))
# Check to see if VisIt is allowed to start on login node
self.IsVisItAllowed()
if self.IsRunningOnWillow():
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/awe/Modules")
elif self.IsRunningOnBlackthorn() :
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/awe/Modules")
if GETENV("MOABHOMEDIR") == "" :
SETENV("MOABHOMEDIR", "/opt/moab/home")
paths += ["/opt/moab/current/bin"]
elif self.IsRunningOnBlackthorn() :
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/awe/opt/Modules")
if GETENV("MOABHOMEDIR") == "" :
SETENV("MOABHOMEDIR", "/awe/opt/moab/home")
paths += ["/awe/opt/moab/current/bin"]
elif self.IsRunningOnIvy():
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/usr/share/modules")
paths += ["/awe/slurm/bin"]
elif self.IsRunningOnBonsai():
paths += ["/opt/sgi/mpt/mpt-2.05/bin"]
ld_paths += ["/opt/sgi/mpt/mpt-2.05/lib"]
elif self.IsRunningOnSprig():
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/awe/opt/Modules")
if GETENV("MOABHOMEDIR") == "" :
SETENV("MOABHOMEDIR", "/awe/opt/moab/home")
paths += ["/opt/moab/current/bin"]
elif self.IsRunningOnSpruce():
if GETENV("MODULESHOME") == "" :
SETENV("MODULESHOME", "/awe/opt/Modules")
if GETENV("MOABHOMEDIR") == "" :
SETENV("MOABHOMEDIR", "/awe/opt/moab/home")
paths += ["/awe/opt/moab/current/bin"]
elif self.IsRunningOnWorkstation():
#Unset PYTHONHOME/PYTHONPATH - when using intelmpi-4.0.0 there appears to be a
#conflict as to which python is loaded. VisIt-2.7.0 uses Python-2.7.5.
#The system python on workstation is 2.6. The mpirun.awe calls mpiexec
#which is written in Python and there appears to be some mismatch issues going on
#However non-experienced on Ivy! (Ivy uses a different version of intelmpi)
UNSETENV("PYTHONHOME")
UNSETENV("PYTHONPATH")
paths += ["/awe/intel/impi/4.0.0/intel64/bin"]
ld_paths += ["/awe/intel/Compiler/11.1/current/lib/intel64"]
else:
exit("Error: Unknown platform\n")
exit("customlauncher -- Error: Unknown platform\n", 1)
SETENV("PATH", self.joinpaths(paths))
SETENV("LD_LIBRARY_PATH", self.joinpaths(ld_paths))
......
<?xml version="1.0"?>
<Object name="MachineProfile">
<Field name="hostNickname" type="string">AWE PillowB</Field>
<Field name="host" type="string">pillowb.hpcs.awe.co.uk</Field>
<Field name="userName" type="string">notset</Field>
<Field name="hostAliases" type="string">pillowb pillowb# pillowb## pillowb### pillowb####</Field>
<Field name="directory" type="string">/prod/codes/visit</Field>
<Field name="shareOneBatchJob" type="bool">false</Field>
<Field name="sshPortSpecified" type="bool">false</Field>
<Field name="sshPort" type="int">22</Field>
<Field name="clientHostDetermination" type="string">MachineName</Field>
<Field name="manualClientHostName" type="string"></Field>
<Field name="tunnelSSH" type="bool">true</Field>
<Object name="LaunchProfile">
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">16</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">parallel</Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">04:00:00</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">msub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-l" "msub/mpirun"</Field>
<Field name="parallel" type="bool">true</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="havePreCommand" type="bool">false</Field>
<Field name="hwAccelPreCommand" type="string"></Field>
<Field name="havePostCommand" type="bool">false</Field>
<Field name="hwAccelPostCommand" type="string"></Field>
<Field name="profileName" type="string">parallel (16 ppn =\> rounds up nprocs to multiple of 16)</Field>
</Object>
<Object name="LaunchProfile">
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">16</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">parallel</Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">04:00:00</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">msub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-l" "msub/mpirun"</Field>
<Field name="parallel" type="bool">true</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="havePreCommand" type="bool">false</Field>
<Field name="hwAccelPreCommand" type="string"></Field>
<Field name="havePostCommand" type="bool">false</Field>
<Field name="hwAccelPostCommand" type="string"></Field>
<Field name="profileName" type="string">parallel (manual - allows nnodes to be set)</Field>
</Object>
<Object name="LaunchProfile">
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">false</Field>
<Field name="partition" type="string"></Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">false</Field>
<Field name="timeLimit" type="string"></Field>
<Field name="launchMethodSet" type="bool">false</Field>
<Field name="launchMethod" type="string"></Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-np" "1" "-nn" "1" "-l" "msub" "-p" "parallel" "-t" "04:00:00" </Field>
<Field name="parallel" type="bool">false</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="havePreCommand" type="bool">false</Field>
<Field name="hwAccelPreCommand" type="string"></Field>
<Field name="havePostCommand" type="bool">false</Field>
<Field name="hwAccelPostCommand" type="string"></Field>
<Field name="profileName" type="string">serial</Field>
</Object>
<Field name="activeProfile" type="int">0</Field>
</Object>
<?xml version="1.0"?>
<Object name="MachineProfile">
<Field name="hostNickname" type="string">"AWE Sprig"</Field>
<Field name="host" type="string">sprig-viz.hpcs.awe.co.uk</Field>
<Field name="userName" type="string">notset</Field>
<Field name="hostAliases" type="string">"sprig sprig# sprig##"</Field>
<Field name="directory" type="string">/prod/codes/visit</Field>
<Field name="shareOneBatchJob" type="bool">false</Field>
<Field name="sshPortSpecified" type="bool">false</Field>
<Field name="sshPort" type="int">22</Field>
<Field name="sshCommandSpecified" type="bool">false</Field>
<Field name="sshCommand" type="stringVector">"ssh" </Field>
<Field name="useGateway" type="bool">false</Field>
<Field name="gatewayHost" type="string"></Field>
<Field name="clientHostDetermination" type="string">MachineName</Field>
<Field name="manualClientHostName" type="string"></Field>
<Field name="tunnelSSH" type="bool">true</Field>
<Field name="maximumNodesValid" type="bool">false</Field>
<Field name="maximumNodes" type="int">1</Field>
<Field name="maximumProcessorsValid" type="bool">false</Field>
<Field name="maximumProcessors" type="int">1</Field>
<Object name="LaunchProfile">
<Field name="timeout" type="int">240</Field>
<Field name="numProcessors" type="int">20</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">parallel</Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">04:00:00</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">msub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-l" "msub/mpirun" </Field>
<Field name="parallel" type="bool">true</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="GPUsPerNode" type="int">1</Field>
<Field name="XArguments" type="string"></Field>
<Field name="launchXServers" type="bool">false</Field>
<Field name="XDisplay" type="string">:%l</Field>
<Field name="profileName" type="string">"parallel (20 ppn =\> rounds up nprocs to multiple of 20)"</Field>
</Object>
<Object name="LaunchProfile">
<Field name="timeout" type="int">240</Field>
<Field name="numProcessors" type="int">20</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">parallel</Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">04:00:00</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">msub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-l" "msub/mpirun" </Field>
<Field name="parallel" type="bool">true</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="GPUsPerNode" type="int">1</Field>
<Field name="XArguments" type="string"></Field>
<Field name="launchXServers" type="bool">false</Field>
<Field name="XDisplay" type="string">:%l</Field>
<Field name="profileName" type="string">"parallel (manual - allows nnodes to be set)"</Field>
</Object>
<Object name="LaunchProfile">
<Field name="timeout" type="int">240</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">false</Field>
<Field name="partition" type="string"></Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">false</Field>
<Field name="timeLimit" type="string"></Field>
<Field name="launchMethodSet" type="bool">false</Field>
<Field name="launchMethod" type="string"></Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-np" "1" "-nn" "1" "-l" "msub" "-p" "serial" "-t" "04:00:00" </Field>
<Field name="parallel" type="bool">false</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<Field name="canDoHWAccel" type="bool">false</Field>
<Field name="GPUsPerNode" type="int">1</Field>
<Field name="XArguments" type="string"></Field>
<Field name="launchXServers" type="bool">false</Field>
<Field name="XDisplay" type="string">:%l</Field>
<Field name="profileName" type="string">serial</Field>
</Object>
<Field name="activeProfile" type="int">0</Field>
</Object>
<?xml version="1.0"?>
<Object name="MachineProfile">
<Field name="hostNickname" type="string">"AWE SpruceA"</Field>
<Field name="host" type="string">sprucea-viz.hpcs.awe.co.uk</Field>
<Field name="userName" type="string">notset</Field>
<Field name="hostAliases" type="string">"sprucea sprucea# sprucea##"</Field>
<Field name="directory" type="string">/prod/codes/visit</Field>
<Field name="shareOneBatchJob" type="bool">false</Field>
<Field name="sshPortSpecified" type="bool">false</Field>
<Field name="sshPort" type="int">22</Field>
<Field name="sshCommandSpecified" type="bool">false</Field>
<Field name="sshCommand" type="stringVector">"ssh" </Field>
<Field name="useGateway" type="bool">false</Field>
<Field name="gatewayHost" type="string"></Field>
<Field name="clientHostDetermination" type="string">MachineName</Field>
<Field name="manualClientHostName" type="string"></Field>
<Field name="tunnelSSH" type="bool">true</Field>
<Field name="maximumNodesValid" type="bool">false</Field>
<Field name="maximumNodes" type="int">1</Field>
<Field name="maximumProcessorsValid" type="bool">false</Field>
<Field name="maximumProcessors" type="int">1</Field>
<Object name="LaunchProfile">
<Field name="timeout" type="int">240</Field>
<Field name="numProcessors" type="int">16</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">viz</Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">04:00:00</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">msub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-l" "msub/mpirun" </Field>
<Field name="parallel" type="bool">true</Field>
<Field name="launchArgsSet" type="bool">false</Field>
<Field name="launchArgs" type="string"></Field>
<Field name="sublaunchArgsSet" type="bool">false</Field>
<Field name="sublaunchArgs" type="string"></Field>
<Field name="sublaunchPreCmdSet" type="bool">false</Field>
<Field name="sublaunchPreCmd" type="string"></Field>
<Field name="sublaunchPostCmdSet" type="bool">false</Field>
<Field name="sublaunchPostCmd" type="string"></Field>
<Field name="machinefileSet" type="bool">false</Field>
<Field name="machinefile" type="string"></Field>
<Field name="visitSetsUpEnv" type="bool">false</Field>
<