Swan cluster
Swan is a cluster of 16 dual-processor six core Intel Xeon X5650 based servers. Each machine has twelve cores and 24Gb of RAM. They all run Linux.
Access to Swan
Swan can only be accessed by sshing into the head node, whose external name is swan.ch.cam.ac.uk. All work is done from there; there is no need to log into compute nodes. Swan uses the local Admitto service, so you log in with the same password as on the workstations. You will need to ask support@ch.cam.ac.uk to allow your Admitto account access to the cluster.
Disk Usage and quotas on Swan
Homespace is on a disk array attached to the head node. The /home filesystem is 360Gb in size and has user quotas which are currently set to 10Gb soft limit with a hard limit of 15Gb. It is backed up. /home is shared to all nodes on the cluster's internal network, so your job sees the same home directory wherever it is on the machine. It's important to remember that from a compute job's point of view accessing this directory is extremely slow, especially if all the nodes are trying at once. Compute jobs should always write data to a local disk if possible, and copy it back to /home at the end.
There is also a shared scratch filesystem /sharedscratch in which you will have a directory. These are not backed up. They have a quota restriction of 250Gb soft limit and 300Gb hard limit, but it is expected that most people will stay well within that amount. They have the same speed issue as /home.
Each node also has a local /scratch filesystem on which the queueing system will create you a directory when you use the node. These filesystems are about 400Gb in size with no quota restriction and are the most appropriate place for your jobs to write temporary files during a run. They are local to each node and so considerably faster than the NFS-mounted /home and /sharedscratch. Please clean up files on /scratch when you are done with them; see the queueing documentation for how to find out which node's /scratch to look at. All of the node /scratch directories are accessible under /nodescratch on the head node. The system uses an automounter so the directories only appear when you try to access them. For example to see the /scratch from node compute-0-5 you need to type something like 'ls /nodescratch/compute-0-5'.
After logging in to swan, the command
quota -s -v
will show you your current quota usage.
Compilers and libraries
A variety of compilers and libraries are installed. Like most local Linux machines swan has the modules environment to allow you to switch between different compilers and libraries. The default environment is set up with all the available 64-bit compilers and Intel MPI. If you need to change this then use the module avail command to see what the other options are, and edit the version you want into your ~/.bash_profile file.
Queueing System
All compute jobs should be run through the queueing system as users cannot log directly into the nodes. The queueing system will run each job on a set of free compute nodes, copying the output back to a user-specified file at the end of the job. The queueing system is Torque/Maui; this will be familiar to users of the other Chemistry clusters, but please note that the available queues are not the same on every machine. Read the generic instructions for instructions on how to use Torque. An example script for use with the queueing system is at /info/example-qsub-script . To run OpenMPI parallel jobs you will need to use the appropriate job launcher which on Swan is called mpirun .
Jonathan Goodman has volunteered to manage the job scheduler on swan. He will set the policy which determines what jobs run when, so please consult him on anything to do with the scheduler.
Getting started if you used to use Dove
People with accounts on the old cluster, dove, will automatically have accounts on swan. The data in the accounts was copied across as of midday Friday May 6th. You may need to edit your shell startup files to make them work on swan. The two big changes are likely to be that you need to comment out the 'module load' commands in .bashrc and put appropriate new ones into .bash_profile. there is an example in /etc/skel/.bash_profile .
