Computers for shared use for Computation

This page, and those under it, were first written specifically as documentation on the use of several computers that my department bought on my suggestion, to help users who needed to run CPU-intensive or memory-intensive computations that were slow or impossible on their desktop computers.

Some information about these computers' hardware or the program and user-file configuration is still present, and will be irrelevant to most readers. Apart from this, I hope these pages might introduce people to some new ones of the many useful programs I've discovered in the past years!

We still (2012-06) have some shared computers: see this page about simlin1, simlin2, etc for more detail. However, with the recent huge advances in numbers of cores and amount of memory, and considerable improvements in the ms-'windows' operating systems used on many of the laptop/desktop computers, there are fewer users who get a real benefit from these servers: their own computers are often up to their normal computation tasks.

Probably a lot of people who sometimes run simulations will have no interest in anything here, and some will be right in this -- i.e. the time invested in changing what they do is just not made up by the time gained; but, I think it is very likely that some others would derive a great benefit from faster calculations, less loading of their own computers, and possibly an introduction to applications and libraries that they didn't know about.

The benefit of shared computing resources

There are benefits of sharing a computer for heavy calculations, even in the primitive way of having one person at a time sitting at the computer! Instead of having to upgrade many personal computers to fast processors and much memory, all the investment is focused into something that can be better than any of the personal computers would have been; as long as not every user needs access all the time, this is a good start. Software installation, upgrade, and possibly licensing, are also simplified. Multi-processor computers, and programs that can take advantage of them, are now much more common than a few years ago: in this way too a shared computer with several processors can have a speed advantage over desktop computers. Amusingly, the concept of several users sharing a computer is not remotely new; it's just much less common now than it used to be, before the `desktop revolution', and yet the old way has its advantages in some cases.

Systems such as ours, which allow simultaneous independent access by (practically) any number of users (see access) have all of these benefits, without the inconvenience of booking and waiting for access. Apart from the advantage of multiple processors and lots of memory, is is sometimes good to be able to leave things running remotely even if turning off one's own computer, and not to make one's own computer become slow.

Apart from the hardware, perhaps it would be useful if we had some discussion among the people in calculation-intensive projects, about how they perform particular sorts of calculations. In some cases, a different choice could make big differences in overall `productivity' of a project. Even between superficially very different projects there can be common ground in the computational problems. Finding out about how other people have done their work, and what useful programs and languages they may have discovered, may help one's own work.

Finally: consider the cost of not providing good computer resources for people working on simulations and other potentially heavy tasks. Many users don't understand how fast things could be if not, for example, swapping all the time. Instead of people sitting largely idle waiting for computers to finish after a few hours, or to crash, they can do calculations quicker anyway, and can use their own computers while the remote computer gets on with the work. With an eight-core machine carrying 16GB of RAM costing now (end of 2008) about one month's after-tax salary for a likely user, there seems little reason for avoiding some good hardware for simulation users. The amount of stories I've heard of woes in industry, struggling against ms-windos `workstations' and memory hungry simulation programs...

Our Computers

This section has been removed as being irrelevant to most readers. The old material is here (hardware) and on the further links from that page.

Resources for Technical Computing, Writing, etc.

There are many programs, libraries and compilers available on the computers. A few proprietary ones may not work on all servers, due to licensing. Most are either Free Software or on floating-licence or site-licence. The shell and common commands are worth a little study by users with any need for automating the running of programs, processing of data and manipulating files.

Many technical programs are available, providing graphical or scripted environments for simulations and general numerical or algebraic solutions.

Another approach, particularly suited to long, heavy calculations, is compilers and libraries for producing executable code that can be used directly or linked into one of the above technical computing languages.

More general-purpose scripting languages are useful for binding technical programs and libraries together or generally for automating tasks on a computer.

Systems for document typesetting, in particular Latex, produce high-quality output, particularly for maths, with good scaling to large documents.

Programs for backup and version-control range from simple copies of data, through to systems for allowing multiple users to make changes to a project of many files while keeping a record of all changes that allows any previous state of the files to be restored.

More Advanced: Performance, Configuration

Simulations and other calculations often take a long time. Methods of increasing speed of a single run, or throughput of multiple runs, may allow much more work to be done in the time of a project. The optimisation page touches on improvements in basic execution speed, use of multiple processors and distribution of jobs over processors and even different computers.

There are many SSH (secure shell) finesses that allow for example automatic login, port-forwarding and remote command execution.

Making one's own changes to the available commands and the configuration of the shell can save a lot of time and tedium when using particular sets of commands a lot. Practically any extra program can be installed by the user into the home or into /local.

Miscellaneous

If users have a strong need of applications that run only on another operating system, there may be ways of acheiving this from within the existing system: the emulation page goes a little deeper. On the other hand, to run on another system some of the scripting and shell environments described here, the other part of the emulation page may be of interest.


Page started: 2007-11-xx
Last change: 2012-06-28