Lithops is a Python multi-cloud distributed computing framework. It allows to run unmodified local python code at massive scale in the main serverless computing platforms. Lithops delivers the user’s code into the cloud without requiring knowledge of how it is deployed and run. Moreover, its multicloud-agnostic architecture ensures portability across cloud providers, overcoming vendor lock-in.
Lithops provides value for a great variety of uses cases like big data analytics and embarrassingly parallel jobs. It is specially suited for highly-parallel programs with little or no need for communication between processes, but it also supports parallel applications that need to share state among processes. Examples of applications that run with Lithops include Monte Carlo simulations, deep learning and machine learning processes, metabolomics computations, and geospatial analytics, to name a few.
Install Lithops from the PyPi repository:
bash $ pip install lithops
Test Lithops by simply running the next command:
$ lithops test
Move to the Cloud¶
Lithops provides an extensible backend architecture (compute, storage) that is designed to work with different Cloud providers and on-premise backends. In this sense, you can code in python and run it unmodified in IBM Cloud, AWS, Azure, Google Cloud and Alibaba Aliyun. Moreover, it provides support for some kubernetes serverless frameworks such as Knative.
Lithops is shipped with 2 different high-level Compute APIs, and 2 high-level Storage APIs
You can find more usage examples in the examples folder.
Lithops is shipped with 3 different modes of execution. The execution mode allows you to decide where and how the functions are executed.
This mode allows to run functions in your local machine, by using processes. This is the default mode of execution if no configuration is provided.
This mode allows to run functions by using one or multiple function-as-a-service (FaaS) Serverless compute backends. In this mode of execution, each function invocation equals to a parallel task running in the cloud in an isolated environment.
This mode allows to run functions by using a Virtual machine (VM). In the VM, functions run using parallel processes like in the Localhost mode.
For documentation on using Lithops, see the User guide.
- Decoding dark molecular matter in spatial metabolomics with IBM Cloud Functions
- Your easy move to serverless computing and radically simplified data processing Strata Data Conference, NY 2019
- See video of Lithops usage here and the example of Monte Carlo here
- Ants, serverless computing, and simplified data processing
- Speed up data pre-processing with Lithops in deep learning
- Predicting the future with Monte Carlo simulations over IBM Cloud Functions
- Process large data sets at massive scale with Lithops over IBM Cloud Functions
- Industrial project in Technion on Lithops
- Bringing scaling transparency to Proteomics applications with serverless computing - 6th International Workshop on Serverless Computing (WoSC6) 2020
- Towards Multicloud Access Transparency in Serverless Computing - IEEE Software
- Serverless data analytics in the IBM Cloud - 19th International Middleware Conference
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 825184.