
Welcome to Burla
Burla is, incredibly simple, completely serverless, cluster compute software.
With Burla, anyone can scale python code over thousands of computers in the cloud, quickly create large GPU clusters, provision very large VMs, or attach high-speed network disks. All with zero setup, and just one function call.
Here's how it works:
Burla is a python package that only has one function: remote_parallel_map
.
remote_parallel_map
only requires two arguments:
- Any python function:
def my_function(my_input):
...
- A list of inputs:
my_inputs = [1, 2, 3, ...]
Then remote_parallel_map
can be called like:
from burla import remote_parallel_map
remote_parallel_map(my_function, my_inputs)
When run, remote_parallel_map
calls my_function
on every input in my_inputs
, at the same time, each on a separate computer in the cloud. Like this:
After each function has finished running, remote_parallel_map
returns a list containing any values returned by the provided function for each function call. Like this:
from burla import remote_parallel_map
def my_function(my_input):
return my_input * 10
my_inputs = [1, 2, 3]
results = remote_parallel_map(my_function, my_inputs)
print(results)
Prints:
[10, 20, 30]
Try it out! (Quickstart)
Here's a quick tutorial to get started with Burla:
In your terminal run
pip install burla
, then runburla login
.
burla login
will create an account for you if you don't have one & authorize you to make calls toremote_parallel_map
.Run the example below!
This example calls a simple function on 1000 different inputs, at the same time, each on a separate computer.
Without Burla, this code could take up to 16 Hours to finish!
from burla import remote_parallel_map
from time import sleep
my_inputs = list(range(1000))
def my_function(my_input):
sleep(60) # <- Pretend this is some complex code!
print(f"Processed Input #{my_input}")
remote_parallel_map(my_function, my_inputs)
This quickstart is also available as a Google CoLab Notebook in case you run into any issues!