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. Our goal with PiCloud is to make it so 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.
Comparison
How does PiCloud compare to regular virtualized servers (e.g. EC2)?
We make fiddling with servers a relic of the past. If your goal is to sync your codebase across your cluster,
allow for both test and production nodes, setup a distributed processing framework with messaging and scheduling,
auto scale on-demand, and have peak efficiency and performance, then you should strongly consider PiCloud which will
get you there in minutes. Once you sign up and plug in our cloud library, you immediately begin
leveraging all of our hard work.
We also charge you by the millisecond, rather than by the hour, which means you'll never have to worry about bringing up and tearing down servers to cut costs. Furthermore, you benefit from our scale on Amazon. You'll have access to far more parallel computing power with us, than on your own cluster.
How does PiCloud compare to Amazon Elastic MapReduce?
Every technology has its specialty. MapReduce is great for ETL tasks, and its key->value reductions allow for significant performance improvements for certain computational problems. For many tasks, however, re-formulating your problems into the MapReduce framework is unnecessary overhead. PiCloud is a generalized framework for running any function on the cloud. With us, there's no reformulating; it just works as is. The PiCloud Platform also offers a superior management platform for tracking computation, analyzing performance, and revealing errors. We also offer a wider breadth of features such as real-time computation, tunable compute units on a function by function basis, and a fully integrated scientific suite.
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. For more details, please see our technical overview.
What's the main technical advantage of running functions on PiCloud versus 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 can connect to any external server or even spawn subprocesses. There are two limitations:
- 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.
Data Storage
Can I store data on PiCloud?
Yes. PiCloud offers a cloud.files module for easy storage. Your capacity is unlimited,
though each file can be at most 5 GB in size. It is used as followed:
cloud.files.put('data.txt')
cloud.files.get('data.txt')
You can also read and write to your shared folder, which accesses an eventually-consistent distributed file system usable by your functions. We currently limit this storage to 1gb. Using it is as simple as writing to any other file:
f = open('shared/data.txt'), 'w')
f.write('testing shared data file')
Note that these commands need to executed on a function that is running on PiCloud.
Temporary storage is available using the standard Python tempfile interface, or by simply writing files to your home directory.
Are you locking-in my data?
Unlike other cloud-computing platforms, we do not force you to use our own data store. Our data storage solutions are provided simply for ease and convenience. In fact, we encourage you to keep your data where it already is, and simply access it with PiCloud using the same methods you already use. Many of our customers use Amazon's Simple Storage System (S3) in conjunction with the boto Python library.
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 function takes four seconds, you will be only charged for four seconds of computation time, saving you money.