Installation instructions#

This guide will help you set up Tumult Analytics on your local machine.

Prerequisites#

Tumult Analytics is built in Python, so a Python installation is required to use it. Only Python 3.7 is officially supported at present, though newer versions likely work.

Because Tumult Analytics uses PySpark for computation, it also requires Java 8 or 11.

You may also need to configure pyspark to use the intended Python installation. You can do this by setting the PYSPARK_PYTHON environment variable. For example:

export PYSPARK_PYTHON=/usr/bin/python3

Tumult Analytics uses python-flint for some mathematical functions, so python-flint is also required. Only Tumult’s wheels (located at https://d3p0voevd56kj6.cloudfront.net) are currently supported.

Only the x86_64 processor architecture is officially supported at present. Apple silicon is supported through binary translation with Rosetta 2.

Note

When using Java 11, Spark requires that Java be passed the -Dio.netty.tryReflectionSetAccessible=true option. Analytics attempts to set these options automatically by running tmlt.core.utils.configuration.check_java11() (from Tumult Core). You can also use the configuration provided by tmlt.core.utils.configuration.get_java11_config() when initializing Spark.

An example of how to set these values manually when initializing Spark is included in the first tutorial. Not doing this before making calls to Tumult Analytics will result in Spark raising java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.(long, int) not available when evaluating queries.

Below are instructions for installing these prerequisites on several common platforms. If none of these apply to you, install Python 3 and Java from your OS package manager, or use the “Manual Installation” section to obtain installers or source distributions and build instructions for your platform. If you encounter any issues during the installation process, please let us know!

Python and pip, Python’s package manager, are likely already installed. If they are not, install them with:

apt install python3 python3-pip

Java may already be installed as well. If it is not, install the Java Runtime Environment with:

apt install openjdk-8-jre-headless

Then install python-flint with

pip3 install -i https://d3p0voevd56kj6.cloudfront.net python-flint

Python and pip, Python’s package manager, may already be installed. On some releases, Python 2 may be installed by default, but not Python 3. To install Python 3, run:

yum install python3 python3-pip

To install Java, run:

yum install java-1.8.0-openjdk-headless

Note that despite the package name, this will install Java 8.

Then install python-flint with

pip3 install -i https://d3p0voevd56kj6.cloudfront.net python-flint

The below instructions assume the use of Homebrew for managing packages. If you do not wish to use Homebrew for this, use the “Manual Installation” instructions instead.

If you do not already have Homebrew, it can be installed with:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Python may be installed with:

brew install python@3.7

And Java may be installed with:

brew install openjdk@8

Then install python-flint with:

pip3 install -i https://d3p0voevd56kj6.cloudfront.net python-flint

Since Python 3.7 is not supported on the Apple silicon processor architecture, you will need to first install Rosetta 2 and the x86_64 version of Homebrew.

If you do not already have Rosetta 2, it can be installed with:

softwareupdate --install-rosetta

The x86_64 version of Homebrew can be installed with:

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Now, you can install Python 3.7 with:

arch -x86_64 /usr/local/bin/brew install python@3.7

And Java may be installed with:

arch -x86_64 /usr/local/bin/brew install openjdk@8

Then install python-flint with:

pip3 install -i https://d3p0voevd56kj6.cloudfront.net python-flint

The only supported way to install Tumult Analytics on Windows is using the Windows Subsystem for Linux (WSL).

Once you install your preferred Linux distribution with WSL, follow the corresponding Linux installation instructions to get Tumult Core setup.

Note

Tumult’s wheels for python-flint may require a newer version of pip than is included your Python version. If you encounter an error during installation, try upgrading with:

pip3 install --upgrade pip

Then retry installation.

Installation#

Once the above prerequisites are installed, Tumult Analytics can be installed using pip3 with:

pip3 install tmlt.analytics

This will automatically install all of its Python dependencies as well.

It is recommended, though not required, to install Tumult Analytics in a virtual environment to minimize interactions with your system Python environment.