Overview
burla.remote_parallel_map
:
burla.remote_parallel_map
:Run an arbitrary python function on many remote computers at the same time. Click here for API-Documentation.
Basic use:
remote_parallel_map
requires two arguments:
Then remote_parallel_map
can be called like:
When run, remote_parallel_map
will call my_function
, on every object in my_inputs
, at the same time, each on a separate CPU in the cloud.
In under 1 second, the three function calls are made simultaneously:
my_function(1)
, my_function(2)
, my_function(3)
Stdout produced on the remote machines is streamed back to the client (your machine). The return values of each function are also collected and sent back to the client. The following displays in the client's terminal:
In the above example, each function call would have been made inside a separate container, each with their own isolated filesystem.
Other arguments:
remote_parallel_map
has a few optional arguments, see API-Reference for the full API-doc.
The func_cpu
and func_ram
arguments can be used to assign more resources to each individual function call, up to 32 CPUs and 128G of RAM per function call.
max_parallelism
can be used to limit the number of function calls running at the same time.
By default, the cluster will execute as many parallel functions as possible given the resources it has. Our free public Burla cluster is configured to run 256 CPUs, allowing up to 256 function calls at the same time, however this can be increased if self-hosting.
spinner
can be used to turn off the spinner, which also displays status messages from the cluster, like the state of the current job.
api_key
exists so users can call remote_parallel_map
inside deployment environments where burla login
cannot be run. To get an API key send us an email: jake@burla.dev.
Limitations:
This list also serves as kind of a roadmap/to-do list. If one limitation in particular is currently blocking you, send me an email! (jake@burla.dev). Or even better, schedule a quick meeting!
Maximum size of all inputs combined can be no larger than 84.8MB
Maximum number of parallel function calls: 256
Maximum number of inputs: ~5,000,000
Maximum number of CPUs per function call: 32
Maximum RAM per function call: 128G
Average e2e runtime for a function with small inputs: ~1.5s
uneven/inflexible distribution of inputs between nodes can sometimes cause long runtimes.
no GPU support (yet).
unable to specify OCI/Docker containers on a per-request basis.
Any Questions?
Schedule a call with us! We're always happy to talk face to face.
Last updated