I've been tinkering with the idea of brute-forcing through this year's IPSC using some cloud computing services. Since many problems in IPSC require hours of computing time (of course, intended solutions can do it within minutes, but..), this might actually change the result of the game.
A few days ago I was extremely bored during an aesthetics class, so I paid 200 won to rent an hour of Amazon EC2 to see how good it performs. I also rented an hour from Mosso, a cloud service providing subsidiary of Rackspace. For comparison, I've run the same tests in my desktop, and my Linode VPS, and my school server, dev.
Of course, all my tests are not scientific (I didn't intend to and I didn't need to) so take this with a ton of salt.
Tech Specs
I got a EC2 High-CPU medium instance, running Ubuntu Jaunty (or Intrepid, I don't remember). EC2 provides 1.7GB of memory, along with dual-core 2.5 compute units - they say it's equivalent to 2.5Ghz 2007 Xeon processor.
I got a 1024MB instance from Mosso, running Ubuntu Intrepid. They assure equal CPU shares from a Quad core processor. From what I see, they put 30+ 1024 clients in a single machine (because their biggest plan is 15.5GB).
Linode provides the VPS I use for this website, my subversion repository, and other things. It comes with a 384MB ram, and burstable performance from a quad core CPU. My server uses Ubuntu Jaunty as well.
My desktop has a Q6600 and 4GB of ram, and it runs Ubuntu Intrepid.
All machines were running 32bit version of Ubuntu.
Tests
I grabbed my submissions for some problems in Algospot Online Judge. There are three problems, and they have a very different runtime characteristics.
I ran three tests in a row for each machine (I know, not very scientific) and measured the minimum runtime in seconds.
Traveling Salesman Problem
My first test was running a TSP solver for several N=20 graphs. It employs a branch-and-bound technique. Naturally, the I/O load would be negligible, and most of the runtime is devoted to navigating the state space.
Runtime in seconds: Linode (2.813 sec), Desktop (2.851 sec), EC2 (3.017 sec), Mosso (4.004 sec)
Dijkstra's Shortest Path
The second test was running Dijkstra's shortest path. The problem required multiplicative shortest path, and quite a lot of floating point operations were needed. Moreover, the data was a bit larger (7MB) than the other two programs.
Runtime in seconds: Linode (0.921) Desktop (0.953) Mosso (1.192) EC2 (1.341)
See the runtime of Mosso is fast here; I'm not sure if the FP or I/O which causes the differnce.
Sorting Game
The last problem is a classic BFS. However, the most of the runtime is used to update/reading a balanced binary tree structure.
Runtime in seconds: Desktop (0.633) Linode (0.642) Mosso (1.028) EC2 (1.939)
Summary
So basically, Mosso and EC2 have comparable performances, but Linode kicked the shit out of them. I was amazed to see it being even faster than my desktop; yes, it's two years old, but it's still a dedicated desktop.
For the competition, Mosso would be my choice since Mosso is more than three times cheaper than EC2. However, Mosso is yet to supply an API for adding/removing instances - I'll see how I can overcome it.
So time to write some distributed batch job scripts....


