Linux for Me : Clusters and Number Crunching
I used to work with strong machines, called alpha, under Unix OS. Now that PCs are getting stronger, Linux (or any other free Unix for PC, like free BSD) for me is a way to use the on-improving power of PCs, and harness it towards long computations ("number crunching"), which take days and weeks.
When I seek to enstrengthen my computational power even more, I want to build a cluster of computers, a farm: a bunch of computers I can send computational jobs to. At splitting the load over a few CPU's, I aim at :
It can also be used just as additional CPU power: you do not need to process your job on your possibly weak desktop computer, you can share a stronger one with other people.
- Getting the job done faster.
- And/Or being able to work with a bigger memory
It IS possible to build a cluster using Windows, but it is much more problematic and expensive.
Windows strong point is the graphical side. It takes space , memory and CPU, and is useless to me. For me, Linux is a work tool, and although there are graphical tools, games and office tools for Linux, they are not the reason I use Linux.
Many Processes at once
Linux strong side, on the other hand, is running many non-interactive processes. This is just what we need for a cluster. What I do not need, is to come in the morning, thinking my job is ready and done with, and get a message saying "heavy_computation1 (not responding)".
Linux is more modular: you easily install only the parts you need. In Windows this is much harder, if at all possible (try to install Windows without any graphics support at all...). Thus I can save the space and memory I need.
Linux is more stable than Windows, and rarely ever requires deliberate reboots. If I need to reboot my Windows computer about once a month, a whole 30-computer-cluster will be rebooted once a day. It is most important when you develop code: I once used to program on Windows, and my computer would crash 10 times a day. It may not say such good things about my programming, but I do expect my OS to stop me from hurting it. On Unix I just get a message saying I am trying to write to a forbidden memory, but the OS keeps on running. and of course, Windows requires rebooting also due to many things I did NOT write...
Remote and Heavy System Administration
System administration is just as easily done(if you can call it easy) remotely and locally. In Windows local administration is supposedly easy (just move your mouse around!) but would anyone care to repeat it a 100 times?
In Linux, there are easy and free tools to install and upgrade Linux for many computers at once.
Remote control at times of peace
The user can also control his job remotely using common tools, which are a part of every Linux system.
Developing tools come with Linux for free (compilers, debuggers, and so on). In Windows, you'll need to buy more software.
Parallelization libraries (pvm, mpi), setups (mosix, beowulf, etc.) needed to create and use a cluster, and off-the-shelf parallelized programs, have been designed and polished on Unix and Linux - but are less polished on Windows.
What I Get From Windows Devotees
For most of these things, Windows devotees can come up with counter-examples:
you can get software on Windows that does remote-administration, remote
terminals, and so on.