Bodo is a new type of inferential compiler with supercomputing-style parallel performance yet using native Python. It is designed for any developer, data scientist or data engineer that requires speed, scaling, and simplicity.
Bodo’s inferential compiler optimizes and auto-parallelizes standard Python code - often providing 100x - 1,000x + performance gains. This gives developers and data scientists access to supercomputer-style speed and scalability, for near real-time results in the areas of big data, ML and AI. Broad access to such analytics will enable new data-centric revenue opportunities, faster competitive responses, and radically more efficient overall data operations.
Bodo is a new type of auto-parallelizing compiler that infers optimal approaches to efficient code execution on parallel cores, from a single machine to large-scale clusters.
You can use Bodo in any way that suits your needs. It is available as a public cloud service, private cloud service, deployed locally on-premises, or even on laptops.
Spark is a library for scale-out analytics that uses a “driver-executor” task scheduling distributed system design. In contrast, Bodo is an inferential compiler that uses parallel computing architecture to provide extreme performance and scalability for Python analytics programs.
Dask is a Python library for scaling computation that has a “driver-executor” task scheduling design similar to Spark, and integrates with other Python libraries. However, Bodo is an inferential compiler that uses parallel computing architecture to provide extreme performance and scalability for Python analytics programs.
RAPIDS is a set of libraries for offloading computation to GPUs. In contrast, Bodo supports standard Python APIs yet still provides extreme performance on standard CPUs. In addition, Bodo provides automatic scaling on clusters and does not require managing expensive special-purpose hardware.
You can use bodo with Pandas, NumPy, Scikit Learn, TensorFlow, PyTorch, and nearly any other Python package. Bodo can be used inside a Jupyter environment, standard command-line Python, or any other Python environment.
Bodo’s compiler provides efficient execution for analytics, similar to Halide compiler for image processing and TVM for deep learning.
Data is the new digital currency. Companies that can rapidly sift value out of large data sets, including AI and ML, will create competitive advantages. Bodo helps bring supercomputing-style performance and scalability to developers and data scientists working on large-scale problems, helping bring new solutions to production in record time.
Bodo can be used as a public cloud platform, a private cloud platform, or on-premises. Cloud pricing is based per hour and as a premium to the Instance costs specific to each cloud provider (See Pricing section on our website). For enterprise on-premises licensing, price is based on cost per number of core usage in a year. For enterprise licensing, please contact us for a quote.
Bodo makes extremely efficient use of compute power through optimized parallel processing, with linear scaling past 10,000 cores. It’s also very easy to learn and use. That means short learning curves for staff, 100-1,000x performance gains. Customers working on large-scale analytics have seen 1/5 - 1/10 the aggregate cost of computing instances - not to mention overall time savings to bring AI and ML solutions to production.
Bodo can be installed from Conda. Adding Bodo to your code requires adding “@bodo.jit” decorator to functions. See Installation to get started.
The code has to be refactored into functions with “@bodo.jit” that the Bodo compiler can understand. See an example here.
Bodo helps accelerate and scale key data science APIs such as Pandas, Numpy and Scikit-learn. Bodo also provides integration with others like TensorFlow and PyTorch to support seamless multi-node scaling. See user docs for more details of APIs that Bodo parallelizes automatically, as well as library integrations.
Bodo is designed for large-scale analytics and large datasets -- and may not be appropriate for other use cases such as accelerating Python web frameworks (e.g. Django) and other non-analytic Python applications.
An inferential compiler can infer fundamental properties of the program from its operations. This allows the compiler to automate parallelization and optimizations that previously required manual effort by high-performance computing experts. Based on the inferred properties, the compiler transforms the program to an equivalent parallelized and optimized binary version under the hood.
Not at this time. However much of Bodo’s platform is based upon open source libraries and software in the Python ecosystem such as Pandas, NumPy, Numba, Arrow, Scikit Learn, IPyParallel, etc.
At the moment, yes. The reason is that Python is by far the most popular language for analytics/ML today. We are looking at ways to bring this level of performance and simplicity to other languages in the future.
Getting started with Bodo is easy, with a minimal learning curve. See our Getting Started docs
Bodo offers a free Community Edition available as a Conda package. It easily runs on your laptop, with up to 8 cores. See our Getting Started docs Trial licenses for more than 8 cores are also available by emailing email@example.com
Creating a fresh environment helps avoid version conflicts for dependencies.
We currently distribute Bodo for Python 3.8+.
Yes, Bodo can be used in any cloud environment.
Please create an issue with the tag [BUG] or [FEATURE] through our Feedback Github or email firstname.lastname@example.org