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.
What does Bodo do? Why does it matter?
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.
Is Bodo a Python Extension? Library? Framework?
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.
Is Bodo software or a cloud service?
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.
How is Bodo different from Spark?
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.
How is Bodo different from Dask?
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.
How is Bodo different from RAPIDS / GPU?
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.
What technologies can I use Bodo with?
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.
What should I compare Bodo to?
Bodo’s compiler provides efficient execution for analytics, similar to Halide compiler for image processing and TVM for deep learning.
Why might Bodo matter to my company?
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.
How is Bodo Priced?
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.
What is the Bodo Return-on-Investment (ROI)?
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.
How do I use Bodo with Python?
Bodo can be installed from Conda. Adding Bodo to your code requires adding “@bodo.jit” decorator to functions. See Installation to get started.
What Python code changes do I need to make?
The code has to be refactored into functions with “@bodo.jit” that the Bodo compiler can understand. See an example here.
How does Bodo complement… Pandas, Numpy, Scikit-learn, XGBoost, TensorFlow, PyTorch? Others?
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.
When is Bodo *Not* appropriate? What is it *not* designed for?
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.
What is an “Inferential Compiler”?
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.
Is Bodo Open Source?
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.
Is Bodo just for Python?
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.
Bodo offers a free Community Edition available as a Conda package. It easily runs on your laptop, with up to 4 cores. See our Getting Started docs Trial licenses for more than 4 cores are also available by emailing email@example.com
Why do I need a new conda environment for installing Bodo?
Creating a fresh environment helps avoid version conflicts for dependencies.
What Python version does Bodo require?
We currently distribute Bodo for Python 3.8+.
What Operating System do I need to run Bodo?
Bodo is available as a conda package and works on MacOS, Linux and Windows. (link to install conda on these OS)
Can I run Bodo in cloud environments (e.g. AWS, Azure, GCP)?
Yes, Bodo can be used in any cloud environment.
Where do I report a bug or request a feature? What if my function is not supported by Bodo?
Please create an issue with the tag [BUG] or [FEATURE] through our Feedback Github or email firstname.lastname@example.org
Where can I get help with using Bodo with my code?