pandas on MPI through unidist#

This section describes usage related documents for the pandas on MPI through unidist component of Modin.

Modin uses pandas as a primary memory format of the underlying partitions and optimizes queries ingested from the API layer in a specific way to this format. Thus, there is no need to care of choosing it but you can explicitly specify it anyway as shown below.

One of the execution engines that Modin uses is MPI through unidist. To enable the pandas on MPI through unidist execution you should set the following environment variables:

export MODIN_ENGINE=unidist
export MODIN_STORAGE_FORMAT=pandas
export UNIDIST_BACKEND=mpi

or turn it on in source code:

import modin.config as modin_cfg
import unidist.config as unidist_cfg

modin_cfg.Engine.put('unidist')
modin_cfg.StorageFormat.put('pandas')
unidist_cfg.Backend.put('mpi')

To run a python application you should use mpiexec -n 1 python <script.py> command.

mpiexec -n 1 python script.py

For more information on how to run a python application with unidist on MPI backend please refer to Unidist on MPI section of the unidist documentation.

As of unidist 0.5.0 there is support for a shared object store for MPI backend. The feature allows to improve performance in the workloads, where workers use same data multiple times by reducing data copies. You can enable the feature by setting the following environment variable:

export UNIDIST_MPI_SHARED_OBJECT_STORE=True

or turn it on in source code:

import unidist.config as unidist_cfg

unidist_cfg.MpiSharedObjectStore.put(True)