Skip to content

SymbioticLab/Fluid

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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},
}

About

A Generic Resource-Aware Hyperparameter Tuning Execution Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published