Running compute-intensive jobs
Compute-intensive jobs
You may login (via ssh) to any computer on the network and use its resources. The list of available computers can be found here.
However, remember that someone else will likely be using that computer for their day-to-day work, and will be unhappy if your programs take too much processing time / memory.
You should never turn the computers off or restart them. Other people may be running jobs remotely on them.
Useful rules of thumb to avoid conflict are:
- Run all jobs prefixed with
nice -19
. This means that jobs such as the desktop, GUI, etc. which need to be interactive take priority over your application, which probably does not need to be interactive. - Make sure that a job does not require too much memory to run. Use
top
to monitor your application's memory usage. If this becomes too large, then kill the job, using kill <process-id> from the command line. Otherwise, disk-space will be used as a replacement for memory and the computer will slow down considerably. - When running a job on a remote machine, it should output to the scratch space of that remote machine. Outputting data over the network takes a relatively long time. Also, if the network happens to fail, your program can continue to run.
- Before starting a long or computationally intensive job, check that no one else is using the computer to run similarly computationally intensive jobs. Use "top" to check this.
- If running in parallel, only use up a number of processes/threads up to the number of processors installed in the system. Hyperthreading does not count as giving you multiple processors...