Are there cloud / cluster / hosting providers that charge for actual CPU time used?

Windows Azure exposes the management of applications (services) using a REST based API (msdn.microsoft.com/en-us/library/ee46079...). You could write your own code using this REST API to manage your deployments. There are both commercial (Cerebrata Azure Management Cmdlets) and free (Windows Azure Platform PowerShell Cmdlets) tools available which can help you automate your deployment tasks.

Indeed. I have a process that only needs to be deployed for a couple of hours and needs lots of instances while it's running. I use the management API to start/stop it when required.

– knightpfhor Oct 11 at 19:23 Sure, but then I need somewhere to run the code that invokes the API! I'm looking for my hosted code to run scheduled all on its own. – AakashM Oct 28 at 14:18.

App Engine has the Cron Service which can issue a request at a particular time of day. You could then use Task Queues to actually perform the work. The only drawback is that tasks must complete within 10 minutes, which means you'd have to break up your processing into discrete chunks that can each finish in less than 10 minutes.

Unlike Amazon et al, App Engine doesn't charge based on time, it charges based on actual usage (e.g. Number of queries per second you're processing, number of bytes used, etc).

I would say that Google App Engine's Backends sound like what you need: Dynamic backends come into existence when they receive a request, and are turned down when idle; they are ideal for work that is intermittent or driven by user activity. For more information about the differences between resident and dynamic backends, see Types of Backends and also the discussion of Startup and Shutdown. Backends do not automatically scale in response to request volume.

Instead, you specify the number of instances of each backend, and change this number by performing an update or configure command. The number of instances is usually set in proportion to the size of a dataset or the degree of processing power you want to bring to bear on a problem. Cost may also be a consideration.In your case, you could just bring up a backend at 6am, run a long-running computation (no 10 minute time limit ala Task Queues), and use the URLFetch library to send the results wherever you need it.

The downside here is that (IIRC) if you aren't under the free quota, you'll be paying the $9 / month for the app (although you could use that to get a nice and beefy Backend). Alternatively, you could just use Amazon EC2 and customize an image with all the code you need, store that in S3, and set a cron job to fire up an instance of it at 6am, run the computation, and kill it once it's done and you have the necessary results. Here, you'd only be charged for the two hours that it runs and a few cents extra to store the image in S3.

Frontends are also scheduled dynamically, so an app using cron or the task queue will work equally well. – Nick Johnson Oct 11 at 23:13.

Amazon EC2 can do what you are looking for. Amazon's Auto Scaling supports scheduling the number of instances you want running at any particular point in time. You can use this to have a single instance start at the time you want.

You would configure the AMI/run parameters so that it runs your batch job at startup. You probably don't need to schedule the stop time. Your batch job can simply shut down the instance when it completes the task, turning off charges.

Actually every provider that has hourly billing periods allows for that as long as you automate instance creation and deletion through API. You can find those in IaaS comparison engine, if in advanced mode you specify 2 hours a day in "time on" field. One more pointer is Selectel - a Russian provider which charges per actual load of a resource.So if you pay half of CPU price if you have 50% of utilization.

Don't know if you don't pay at all if it goes to 0. Similar is with RAM.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions