StarCCM+ is used for computational fluid dynamics (CFD).
Submit a StarCCM+ job
It is easy to submit a batch job to the scheduler to process a previously-created StarCCM+ simulation file.
Job Submission Example
In the example below the simulation file simulation.sim will be processed by StarCCM+ by submitting the job script submit.sh to the scheduler.
Example submission script submit.sh:
This example requests one hour of walltime, uses 8 processor cores on one node and 32GB of memory (4GB per core).
#!/bin/bash
#
#SBATCH --job-name=StarCCM+
#SBATCH --mail-type=BEGIN,FAIL,END
#SBATCH --mail-user=username@leicester.ac.uk
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=4GB
#SBATCH --output=%x-%j.out
#SBATCH --error=%x-%j.err
#SBATCH --export=NONE
# Load the StarCCM+ module
module load starccm/18.04.008
# cd into the job submission directory
cd $SLURM_SUBMIT_DIR
# Create a list of nodes for this job
srun hostname | sort -n > ${SLURM_JOB_ID}.nodelist
# Start StarCCM+ using the specified simulation file
starccm -np ${SLURM_NTASKS} -batch -machinefile ${SLURM_JOB_ID}.nodelist -mpi openmpi simulation.sim
# Delete the node list file
/bin/rm {$SLURM_JOB_ID}.nodelist
Submit the StarCCM+ submission job to the queue:
sbatch submit.sh
Create your own submission script
You will usually only need to make small changes to the example submission script:
- Walltime
- Memory limits
- Node and PPN values
StarCCM+ will scale over multiple nodes so you can request much larger jobs. Bear in mind that the more resources you request, the longer your job will be queued before it starts.
There is support in StarCCM+ for GPU acceleration. We don't currently have access to the StarCCM+ documentation to provide assistance with this.
Interactive use of starccm
There are cases where it is necessary to run starccm interactively, but with more resources than are available on the login nodes. While it is possible to run via an interactive job, graphical performance can be poor. In these cases it is possible to run the starccm GUI on a login node or personal workstation and connect to a server running on a compute node.
Starting a starccm server on compute node:
Open a NoMachine connection to ALICE, in a new console start an interactive job and start a star ccm server:
srun --time=2:00:00 --mem=32g --tasks=8 --pty /bin/bash
Note that this will run for 2 hours - you can request longer time periods, memory and cpus (tasks), however the more resources you request the longer it will take to schedule your job. Once the job starts, run:
module load starccm
module load openmpi/4.1.5
starccm -server -mpi openmpi -np $SLURM_NTASKS -load YOUR_FILE.sim
Replacing YOUR_FILE.sim with the sim file you wish to process. The server will start, the final line of it's output will tell you the host and port it is listening on, for example:
Server::start -host alice-node001.cm.cluster:47828
Connecting to a starccm server from a login node
Open a second console in nomachine to run the starccm gui, you will need the host/port of the server to connect, for the example above:
module load starccm
starccm -host alice-node001.cm.cluster:47828
You should replace alice-node001.cm.cluster:47828 with the host and port of your server.
Connecting to a starccm server from a workstation
It is also possible to run the starccm gui on a workstation/laptop - you must be on-site and connected to the University wired or wireless network for this to work. You will need to install starccm and putty on your laptop/workstation for this.
Start the server as above, take note of the host name and port. On your local device start putty and configure a new connection through one of the alice login nodes (for example alice-login01.rcs.le.ac.uk), note that using alice.le.ac.uk will not work here. Do not connect yet, first go to connection->ssh->tunnels. Set a source port (I suggest using the same port as the Server is listening on for simplicity, 47828 in this example). Set the destination to the hostname:port returned by the server (alice-node001.cm.cluster:47828 in the above example). Click open and enter your username/password.
This will open an ssh tunnel forwarding all traffic to port 47828 on your machine to port 47828 on the cluster node, via the login node. All traffic will be automatically encrypted. Leave this open for the duration of your starccm session.
Now start starccm on your local machine, select connect to server and connect to the port from above on your local machine (use the local only address 127.0.0.1 for this) for the example here you would connect to Host 127.0.0.1, poer 47827. Use local rendering.