Fluid
Fluid copied to clipboard
A Generic Resource-Aware Hyperparameter Tuning Execution Engine
Fluid: Resource-Aware Hyperparameter Tuning Engine
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},
}