Over the last few days I’ve been messing around with Montecarlo algos and distributed processing. It’s struck me that despite many attempts at parallelising on a single computer in .NET, I still can’t easily beat the performance of native C.
So if I want to do better, then I should start thinking about using multiple machines and setting up a grid. But the options here seem expensive. I could buy physical hardware at £500-2000 a go or use a professional cloud service like Azure (where prices can rocket quickly) or Amazon (prices are obscure) or Google (need a PhD in pricing).
Instead, I’ve been checking out Slicify an online exchange for buying and selling compute power – a crowd sourced cloud if you will. If I could get reasonable compute power at <£40 a month as they advertise, then it might be worth a look.
As with most of the other services (except Google App Engine), Slicify uses Virtual Machine technology and more specifically sellers host an instance of Ubuntu Linux on their machine and share it with the buyer. Cool idea, but.
The problems are listed below:
- The download required is huge including a full instance of a VM takes 20-30 mins on my 100 Mbps line. Tiring.
- After installing, reinstalling, configuring and reconfiguring as per their instructions, I am not able to get Slicify to work. It just sits there attempting to launch a VM instance and erroring out. Exasperating.
- When you attempt to report problems, you have to copy Slicifys error log to the clipboard. After 1 day, mine was over 23k lines of text so a copy and paste locked my 4 core 16Gb system. Very shoddy.
- No power management or monitoring means that I can’t track whether the extra electricity bill is smaller than the amount I sell it for.
I’ve turned Slicify off as in it’s current state, it is unusable. I have no idea how easy it would be to build distributed apps with C#. I suspect that it won’t be easy even with Java. But it seems strange to have to use an entire OS where all I want is a sand boxed .NET CLR or Java VM.
Reading about Google App Engine which (on the face of it), hosts just a runtime looks promising but of the major technologies seems only to support Java.