.. _integrate_dask: ============ DASK on Mars ============ .. Note:: New in version 0.8.0a2 Dask-on-Mars provides a simple way to execute the entire Dask ecosystem on top of Mars. `Dask `__ is a flexible library for parallel computing in Python, geared towards scaling analytics and scientific computing workloads. It provides `big data collections `__ and Dynamic task scheduling optimized for computation. .. note:: For execution on Mars, you should *not* use the `Dask.distributed `__ client, simply use plain Dask collections and functionalities. Scheduler --------- The main API for Dask-on-Mars is :meth:`mars.contrib.dask.mars_scheduler`. It uses Dask’s scheduler API, which allows you to specify any callable as the scheduler that you would like Dask to use to execute your workload. .. code-block:: python >>> import dask >>> from mars.contrib.dask import mars_scheduler >>> >>> def inc(x): >>> return x + 1 >>> >>> dask_task = dask.delayed(inc)(1) >>> dask_task.compute(scheduler=mars_scheduler) # Run delayed object on top of Mars 2 You can also set Mars scheduler as default one. .. code-block:: python >>> import dask >>> from mars.contrib.dask import mars_scheduler >>> dask.config.set(scheduler=mars_scheduler) Convert Dask Collections ------------------------ :meth:`mars.contrib.dask.convert_dask_collection` can be used when user needs to manipulate dask collections with :ref:`Mars remote API ` or other features. It converts dask collections like delayed or dask-dataframe to Mars Objects, which can be considered as results returned by :meth:`mars.remote.spawn`. .. code-block:: python >>> import dask >>> import mars.remote as mr >>> from mars.contrib.dask import convert_dask_collection >>> >>> def inc(x): >>> return x + 1 >>> >>> dask_task = dask.delayed(inc)(1) >>> mars_obj = convert_dask_collection(dask_task) # Convert Dask object to Mars object >>> mars_task = mr.spawn(inc, args=(mars_obj,)) >>> mars_task Object >>> mars_task.execute().fetch() 3 Dask-on-Mars is an ongoing project. Please open an issue if you find that one of these dask functionalities doesn’t run on Mars.