HAMS is a research project. HAMS means high availability for ML service graphs.
You may would like to refer to our paper:
HAMS: High Availability for Distributed Machine Learning Service Graphs (will appear at DSN '20)
The project follows Apache 2.0.
The code is still under code cleaning, document preparation. Current HAMS only support key functionalities that deploy a directed graph of ML services and provide fault tolerance to the service.
More functionalities like fine grained control of the services and more flexibilities are still under development.
Authors:
- Shixiong Zhao ([email protected])
- Xusheng Chen ([email protected])
admin
: Deployment interfaces of services. Management daemon. The admin interfaces is developed from Clipper (ucbrise lab, https://github.com/ucbrise/clipper), and finally only remains some of the code structures.
applications
: Definition and dockerfiles for the applications.
frontend
: A simple frontend developed based on gRPC that receives and buffers requests.
proxy
: Proxy code. Each container has a proxy. All proxies together build up the runtime and fault tolerance logics.
grpcclient
: Contains client code.
dockerfiles
: Contains dockerfiles to build up development dockers, proxy dockers, and frontend dockers.
docker run -it --network=host -v [YOUR_CODE_PATH_TO_HAMS]:/hams -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp [Py35_Development_Docker]
cd /hams/hams_admin
python simple_dag.py
python stock.py
docker container ls
docker container [CONTAINER_ID]
docker run -it --network hams_network zsxhku/grpcclient [IP_OF_THE_ENTRY_PROXY] 22223
You can see the /grpcclient/app/grpc_client.py and see the implementations and implement you own grpcclient docker
But remember you should run the grpcclient docker under hams_network
python stop_all.py