Issue with MainWin Core Services for GE

By default, GE creates a temporary directory for each GE batch job, and deletes this temporary directory and its contents when the job finishes. GE sets the TMP and TMPDIR environment variables of the job environment to point to this temporary directory. Ansys Electromagnetics desktop software starts the MainWin Core Services on startup, if they are not already running. After the Ansys Electromagnetics desktop software finishes, the MainWin Core Services time out and automatically shut down. The MainWin Core Services use the TMP and/or TMPDIR directories to store temporary data. If this temporary data is removed before the services shut down, then the services do not shut down automatically. Normally, GE will remove the temporary directory and its contents before the services time out. The result is that these extraneous service processes run forever. If this problem occurs, each Ansys Electromagnetics batch job starts an additional set of these services that never shut down. This can result in an excessive number of processes running on the host where the Ansys Electromagnetics desktop is started. The names of the service processes are:

Workaround for Issue with MainWin Core Services

One way to avoid this problem is to modify the environment in which the Ansys Electromagnetics desktop runs so that the TMP and TMPDIR environment variables do not point to the directory which will be immediately removed by GE when the job finishes. This can be done by copying the value of the TMPDIR environment variable to the ANS_SGE_TMPDIR environment variable, and unsetting the TMPDIR and TMP environment variables. The services ignore the ANS_SGE_TMPDIR environment variable, but if this variable is set, then it will be used as the temporary directory for the rest of the Ansys Electromagnetics software.

Here is an example bash wrapper script that may be used to work around this issue. In this example, the product is maxwell, but the same approach will work for any Ansys Electromagnetics product. In this example, the script is named sge_maxwell and is in the AnsysEM software installation directory. When an Ansys Electromagnetics desktop job is submitted to the SGE scheduler, the script (sge_maxwell, in this example) should be submitted instead of maxwell. The script will modify the environment, as needed, then start maxwell. When the analysis finishes, the script returns the exit status of maxwell.

An alternative is to place the script in an arbitrary directory, and modify the script to include an absolute path to the product (maxwell in this example).

Script contents:

#! /bin/bash

 

# This script will not correctly process arguments containing

# spaces or other characters special to the shell.

 

# Create maxwell command line

# In this example, sge_maxwell and maxwell are in the same directory

# An alternative is to use an absolute path for the maxwell command

cmd0=$0

cmd="${cmd0/%sge_maxwell/maxwell} $@"

 

# Fix environment variables

export ANS_SGE_TMPDIR=${TMPDIR}

unset TMPDIR

unset TMP

 

# Run the maxwell command and return the exit status

${cmd}

exit $?

Related Topics 

Integration with Grid Engine (GE)

Monitoring Ansys Electromagnetics GE Batch Jobs

Ansys Electromagnetics Desktop -monitor Command Line Option for GE

Example GE qsub Command Lines

Issue with MainWin Core Services for GE

Recommended Practices for GE Clusters