How to Use Free and Almost Unlimited Cloud-Computing Resources From Google?

DZone 's Guide to

How to Use Free and Almost Unlimited Cloud-Computing Resources From Google?

· Cloud Zone ·
Free Resource

Distributed computing is a very beneficial way for computing certain kinds of distributable problems using a large number of computers (nodes). But what if you do not have enough computers? The answer is to use Google App Engine.

Google App Engine is a simple framework which allows you to write and deploy web apps on Google’s servers. Although you cannot run full MapReduce application on GAE you can use it to compute tasks.

The Dynamic Agent Computations (DAC) framework now allows you to use Google App Engine's computing power to speed up your computations. Normally, DAC framework distributes tasks to all Worker processes connected to it. Obviously this approach requires new computers to run. Alternatively you can use 'virtual' computers provided to you in GAE's environment.

Here is a little comparison of results gathered using single computer with two core 2.0 GHz processor and in combination with Goggle App Engine.

GAE chart

As you can see on the chart a single GAE thread is much slower than single local thread. However here comes the numbers. You can easily have 6 GAE's threads even on a free Google App Engine account. This amount allows you to double the number of tasks computed per minute. And this means everything will finish two times faster. Of course starting more threads or having more GAE's accounts will just boost the gain.

Still there are some restrictions from Google App Engine like 30 seconds response limit which means that the tasks can't be to long. Also free accounts have many quota limits, especially 6.50 CPU hours might be crucial.

You can find an example of usage in the google_app_engine sample of the newest DAC distribution available on our website


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}