When I join a new department or institute, the first thing I ask is “do we have a cluster?”
Most of what I do, I do on a computer. Gone are the days when theorists would always do all their work on notepads and chalkboards (though many still do!). Instead, we use specialized computer programs like Mathematica and Maple. Using a program helps keep us from forgetting pesky minus signs, and it allows working with equations far too long to fit on a sheet of paper.
Now if computers help, more computer should help more. Since physicists like to add “super” to things, what about a supercomputer?
Supercomputers are great, but they’re also expensive. The people who use supercomputers are the ones who model large, complicated systems, like the weather, or supernovae. For most theorists, you still want power, but you don’t need quite that much. That’s where computer clusters come in.
A computer cluster is pretty much what it sounds like: several computers wired together. Different clusters contain different numbers of computers. For example, my department has a ten-node cluster. Sure, that doesn’t stack up to a supercomputer, but it’s still ten times as fast as an ordinary computer, right?
Well, not exactly. As several of my friends have been surprised to learn, the computers on our cluster are actually slower than most of our laptops.
Still, ten older computers is still faster than one new one, yes?
Even then, it depends how you use it.
Run a normal task on a cluster, and it’s just going to run on one of the computers, which, as I’ve said, are slower than a modern laptop. You need to get smarter.
There are two big advantages of clusters: time, and parallelization.
Sometimes, you want to do a calculation that will take a long time. Your computer is going to be busy for a day or two, and that’s inconvenient when you want to do…well, pretty much anything else. A cluster is a space to run those long calculations. You put the calculation on one of the nodes, you go back to doing your work, and you check back in a day or two to see if it’s finished.
Clusters are at their most powerful when you can parallelize. If you need to do ten versions of the same calculation, each slightly different, then rather than doing them one at a time a cluster lets you do them all at once. At that point, it really is making you ten times faster.
If you ever program, I’d encourage you to look into the resources you have available. A cluster is a very handy thing to have access to, no matter what you’re doing!
Have you, or do you know researchers who have, made use of AWS or other cloud computing solutions? It seems like it may be more cost effective to throw up an instance across VMs for larger calculations.
Hmm…I don’t know anyone who uses Amazon Web Services or the like for research. One obstacle might be that we tend to use proprietary software (Mathematica mostly) which an academic institution can usually get discounts on installing on its own machines. I don’t know what the logistics would be of doing that sort of thing with AWS. Then again, it could also just be that the idea hasn’t percolated from CS circles yet.
After looking at the Mathematica licensing pricing structure, I’m not sure I would want to blow $500 off my funding per license for a one off or series of one off calculations. However–as someone who knows nothing of what you use within Mathematica or why you need it–there are free-as-in-beer Linux distros you could use. Like, after a quick google search, Fermi Linux. Fork of Red Hat Enterprise Linux by and for physicists. Maybe it has what you need? I understand pivoting from OS to OS can have several pain points, but perhaps worth looking into, though it may not be tailored to your particularly niche.
Scientific OSes and Mathematica serve different roles. The point of Fermi Linux or the like is mostly to have a common platform among scientific computers, which is handy when experimentalists want to be able to write code for eachother.
Mathematica is a symbolic manipulation system. That means that it lets you do basically any sort of calculation you might wish, without having to rephrase it in a numerical way. You can essentially just take a calculation off of a page, type it in to Mathematica, and it will probably understand what you’re doing. This makes it an enormously versatile tool, and one not easily replicated.
There _are_ free symbolic manipulation systems (FORM is pretty cool: http://www.nikhef.nl/~form/aboutform/aboutform.html), which have different virtues. Currently, Mathematica’s wide function library and extensive support make it the front-runner even given its cost, but that might change at some point.
I certainly wouldn’t get Mathematica for a one-off calculation, but that generally isn’t the situation. I use Mathematica almost every day (on my own computer), and in general someone is using the cluster’s licenses pretty much all-year round.
Re: Amazon services use: Some supercomputing centers are starting to adopt use of GlobusOnline, which does make use of Amazon technology in some situations. See e.g. https://www.globus.org/blog/go-under-covers-globus-online-relies-amazons-ec2 or http://aws.amazon.com/solutions/case-studies/new-york-university/
There are several problems in practice with using AWS. For one, if you’re not doing embarrassingly parallel calculations as Matt’s describing then the communication between VM instances will be so slow that you might as well be doing it in serial (might even be faster in serial). Another issue is that, in high performance computing at least, you need highly tuned, bare-bones, **homogenous** nodes, which a set of AWS VMs isn’t going to provide.
But for the sort of work Matt’s describing the NSF’s premier computing resources/services organization (XSEDE) does have an AWS-like resource available called FutureGrid: https://www.xsede.org/futuregrid .
Re: Mathematica: Of course it’s not as powerful or feature rich, but Python’s starting to get into the symbolic math game too with SymPy: http://sympy.org/en/index.html If you’re looking for free symbolic math, I’d say go with it.