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".
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(),
...
)
See the README in workloads
for more information.
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},
}