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, bearing in mind that, on the Apple system, the network is effectively our disk I/O bus, if you generate a tremendous amount of network traffic, you will slow down general computer performance for everyone.
  • MacPro clients represent a shared computing resource, for the use of everybody. Some people choose to use these clients as their desktop machines. Still, those users get no special priority on those machines when running other than desktop tasks; so unlike iMac users, users of desktop MacPro clients may not run high-priority numerical jobs on their machines.
  • Desktop users of MacPro clients should not reboot these machines without contacting support first.

Running numerical jobs on MacPro clients

The following rules apply when running numerical (i.e. high-usage, background, non-GUI jobs) on MacPro clients. Please note that these rules apply to all people, regardless of whether you use a MacPro as your desktop client, or are using it remotely.

  • 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 iMac clients

iMac clients are primarily a desktop computing environment, however, with over 200 cores and 400GB 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 iMac 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 iMacs:

  • In general, all the rules that apply to running jobs on MacPro 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 iMac. This means that if an iMac is running a job by other than the local user (this is can be checked with the 'who' command), that iMac is to be considered full.
  • iMacs have 2 cores, so in accordance with the one-job-per-core rule, you should run no more than 2 jobs on any iMac at any time, and any iMac running 4 jobs is considered full.

Caveat: on iMac machines, the local user is king. On your local iMac machine (and only your local iMac 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 desktop iMac 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: Policy | Theory