Penn State EMS Environment Institute
Environmental Computing Facility


Guidelines for using shared computing resources

Frequently, there are computers that are dedicated to a particular purpose and are accessible to a number of people. Some of the machines that fall into this category are

Since many people may be trying to work on the machine at the same time, it's important to make sure that the machine's resources are used wisely, since it's relatively easy to consume them and make it impossible for others to do work. These machines may also be providing services to the network that can be interrupted if the machine is overwhelmed.

Appropriate jobs

The easiest way to make sure the machine is used effectively is to make sure that it's only running jobs for which it was intended. Please only use these machines for their intended purpose, so that CPU cycles, memory, and network bandwidth intended for group use are not wasted on tasks that could be performed on your personal machine. Here are some examples of processes that must not be run on these machines:

Filesystem use

If the machine that you're working on has local temporary disk space (such as galaxy's /ftmp filesystem), please make sure you're not using too much of the filesystem (using "df -k" and "du -sk <dirnames>"). It's very important not to fill up the /tmp filesystem on any unix machine, since the operating system and many other programs depend on that space to run correctly.

Remember to clean out temporary space when you're finished with it.

Number of jobs

These restrictions don't apply to the Cray or the SP, which control their CPU utilization using their own scheduling software.

Especially on machines that only have one or two CPUs, it's important not to run more than one job at once. Only one process can run on a CPU at a time, and it takes resources for the operating system to switch back and forth between processes. Running two jobs on a machine that only has one CPU will waste resources and run slower than if the jobs had been run one after the other.

Please do not use all the CPUs in a shared machine if it can be avoided.

Please ask the sysadmins if you have any question about what resources a particular machine has, or how to use them.

Using the "nice" command

These restrictions don't apply to the Cray or the SP, which control their CPU utilization using their own scheduling software.

Commands that are issued normally run with a default priority, and compete for shared CPU resources at an equal level. If you're going to run a command that is going to take a while (more than a minute or two), you should use the "nice" command to lower its priority. It will complete in about the same amount of time, but it will give other commands (such as someone simply running "ls") a higher priority, so that the machine doesn't become sluggish for all users.

To use the nice command, simply preface your job with "nice". For example, instead of issuing the command

   ./my_imsl_prog

start your job compile with the command

   nice ./my_imsl_prog

Memory

Make sure the job that you're running will fit into the physical memory of the machine. A process that has to constantly swap memory will run an order of magnitude slower, and render the machine unusable due to the disk load. It's always better to find a machine that has enough memory. Email sysadmin if you aren't sure which machine to use for your particular job.



Back to the index