Home

Awesome

Fluid: Resource-Aware Hyperparameter Tuning Engine

PyPI version Python package

Fluid is an alternative Ray executor that intelligently manages trial executions on behalf of hyperparameter tuning algorithms, in order to increase the resource utilization, and improve end-to-end makespan.

This is the implementation of our MLSys'21 paper "Fluid: Resource-Aware Hyperparameter Tuning Engine".

Get Started

First follow the instruction in Ray Tune to setup the Ray cluster and a tuning environment as usual.

Then make sure Nvidia MPS is correctly setup on all worker nodes.

Fluid itself is a normal python package that can be installed by pip install fluidexec. Note that the pypi package name is fluidexec because the name fluid is already taken.

To use Fluid in Ray Tune, pass an instance of it as the trial executor to tune.run. It should work with any other schedulers:

from fluid.fliud_executor import FluidExecutor
tune.run(
    MyTrainable,
    trial_executor=FluidExecutor(),
    ...
)

Reproduce Experiments

See the README in workloads for more information.

Notes

Please consider to cite our paper if you find this useful in your research project.

@inproceedings{fluid:mlsys21,
    author    = {Peifeng Yu and Jiachen Liu and Mosharaf Chowdhury},
    booktitle = {MLSys},
    title     = {Fluid: Resource-Aware Hyperparameter Tuning Engine},
    year      = {2021},
}