Computing Etiquette In Theoretical Physics
Generally, people's desktop systems are theirs to do with as they please, when it comes to using RAM and CPU cycles and scratch disk space. There are some caveats, however, and these are:
- Traffic on the network affects everybody; if you generate a lot of network traffic, you may slow down the network for other people.
- Also, bear in mind that on the Linux system, the network is effectively our disk I/O bus, so if you generate a tremendous amount of network traffic, you will slow down general computer performance for everyone.
Running numerical jobs on Dell PowerEdge clients (tplxints)
The following rules apply when running numerical (i.e. high-usage, background, non-GUI jobs) on Dell PowerEdge clients. Please note that these rules apply to all people, regardless of whether you use a Dell PowerEdge remotely via command line or graphical interface.
- All numerical jobs must be run at priority 10 or worse (why?), and should be set to much worse than 10 if you are planning to run jobs across a significant proportion of the available cores. To do this, simply prefix your command with the command 'nice', e.g. to run the program 'numericaljob' at priority 10, one would issue the command:
nice numericaljob
If you have already inadvertently set your job running at normal priority, find its PID, then execute the command:
renice -n 10 PID
e.g. for PID=14556, you would run 'renice -n 10 14556'. This will increment the priority of the job by 10. Please note, you can only amend the priority of jobs that you own. - You should run no more processes than the number of CPU cores on any machine (why?). For example, on an 8-core machine, you should run no more than 8 processes.
- You should not add processes to a machine if doing so will reduce the CPU time per process to less than 50% of one core (why?). For example, if an 8-core machine is already running 16 numerical jobs, it should be considered full.
- Please do not use more than half of the system RAM with your combined processes, without contacting support first (why?).
Running numerical jobs on Linux desktop clients
Linux desktop clients are primarily a desktop computing environment, however, with over 200 cores and 800GB of distributed RAM, they represent a not-insignificant computational resource. At the moment, we do not have a functioning grid system for automatically allocating jobs to idle Linux desktop clients. However, you can directly SSH into the machines themselves.
Because they are primarily for desktop usage, special rules apply when running numerical jobs on Linux desktops:
- In general, all the rules that apply to running jobs on tplxint clients also apply. In particular, jobs must be run niced, to avoid stealing cycles away from desktop processes.
- During office hours, please ensure that only one job not belonging to the desktop user is run on each Linux desktop. This means that if a Linux desktop is running a job by other than the local user (this is can be checked with the 'who' command), that Linux desktop is to be considered full.
- Linux desktops have 4 real cores (8 hyperthreaded, so in accordance with the one-job-per-core rule, you should run no more than 4 jobs on any Linux desktop at any time, and any Linux desktop running 8 jobs is considered full.
Caveat: on Linux desktop machines, the local user is supreme. On your local Linux desktop machine (and only your local Linux desktop machine) you may run jobs at as high a priority as you wish. Local users may sometimes reboot their machine, if they think it improves their machine's peformance, and it is their right to do so. You should therefore tread carefully when running numerical jobs on Linux desktop machines.
One more thing
None of these rules is intended to stop you using a machine that is idle, especially at night/weekends/holidays.
By the letter of these rules, you could single-handedly use the majority of the computer resources of the entire subdepartment (albeit without jamming everything up). This is intentional: if there is no competition for resources, you should be able to use all you want. I leave it to your judgement to decide how much is too much, when there is competition for resources. Feel free to complain if you think someone is using too much; and you will certainly hear from me if I think you are being unfair. Please feel free to contact support with any questions or suggestions to improve these guidelines.
Categories: Theory