General
What is PiCloud?
PiCloud is a fresh take on cloud computing. Our platform allows you to easily run any Python code on an auto-scaling, high-performance cluster. No server management required.
Why would I want to use PiCloud?
PiCloud is all about offloading computation from your computer onto our cloud. If you're developing a highly scalable web application, PiCloud will get any heavy lifting off the web process ensuring that web requests are returned immediately. If you're developing an algorithm, PiCloud will let you run it across our cluster with no additional effort.
So, with PiCloud I get a server?
Nope. The purpose of PiCloud is to make the nitty-gritty details, such as servers and load balancers, transparent to the user. Using our library, you simply interact with the cloud as if you were running the code on your local machine. We distribute and process your functions across our own cluster.
How do I ssh into the server that runs my code?
You can't. The whole point of PiCloud is that you don't need to think about servers anymore — only functionality expressed in code.
How do I run code on PiCloud?
Let's say you are trying to run function foo on PiCloud:
answer = foo(args)
After installing and importing the cloud client library, change the above line to the following:
jid = cloud.call(foo, args) # run foo(args) on PiCloud
# Do work in parallel here, if desired
answer = cloud.result(jid) # get result of foo(args)
And that's it. No grueling set up, special IDEs, or hacks necessary.
What is a job?
A job is a Python function that is to be executed on PiCloud's servers.
Comparison
Why is this better than regular virtualized servers (e.g. EC2)?
PiCloud is far easier to use for background processing. You only need to write the functions for PiCloud to run; PiCloud will take care of the rest. You no longer need to worry about server management, server scaling, log parsing, etc. — all of this is handled by PiCloud.
Furthermore, because PiCloud runs your jobs across all of our servers, you will have access to far more parallel CPU power than similarly priced individual servers.
Why is this better than MapReduce?
MapReduce was designed for embarrassingly parallel problems, and requires re-formulating your problems into the MapReduce framework. On the other hand, PiCloud is a generalized framework for running any existing function on the cloud. Therefore, PiCloud not only supports straightforward parallel computation such as scraping webpages, but it also allows coarse-grained parallelism where a shared memory space is required.
System Details
What happens to a function when I submit it?
Your function will enter our queue. The function will begin processing at a time dependent on your pricing option, and the number of functions you are currently running.
What's the main technical advantage of sending jobs versus running locally?
Parallelization. If you execute 3 cloud calls simultaneously:
jid = cloud.call(foo, args)
jid2 = cloud.call(foo2, args2)
jid3 = cloud.call(foo3, args3)
foo, foo2, and foo3 will all be running in parallel.
In addition, your local machine will be free to run other tasks. A webserver, for instance, will be able to continue
responding to web requests.
Constraints
What constraints are present?
Few. PiCloud is powerful enough to connect to any external server or even spawn subprocesses.
Two limitations do apply:
- 1. You cannot use PiCloud to listen for incoming connections.
- 2. To prevent spam, we are currently blocking outgoing connections on port 25. For now, if you wish to use PiCloud to email, you will need to use a third party SMTP server, such as AuthSMTP .
Can I test for compatibility with PiCloud locally?
Yes. Our client library features a PiCloud simulator that allows you to run functions locally as if they were running on PiCloud.
What about lock-in?
Unlike other Cloud platforms, we do not have complex APIs that we force you to use. If you ever wish to move off of PiCloud, doing so is as simple as removing cloud.call lines.
Data Storage
Can I store data on PiCloud?
You can, but PiCloud is not intended to be a data storage platform. Consequently, your space is limited (1 GB) and you can only read/write via the cloud library. You should only use this storage to hold data files needed by your jobs or as temporary scratch space.
How should I deal with reading and writing data?
Because PiCloud can connect to any server, you can always read and write to your own database. To store files, we recommend Amazon's Simple Storage System (S3).
PiCloud cannot connect to my database, file server, etc. What gives?
Make sure you have configured your servers to accept connections from outside of your LAN. Be aware that PiCloud cannot access local files, and local entities such as "localhost."
Pricing
How much does PiCloud cost?
Please refer to our pricing page.
What do you mean by "charging for exact computation time"?
Generally, server providers will charge you for discrete time frames. For instance, on Amazon EC2, if you bring up a server and tear it down a minute later, you will be charged for an hour of time. However, on PiCloud, if your job takes four seconds, you will be only charged for four seconds of computation time, saving you money.