- Notifications
You must be signed in to change notification settings - Fork0
Simple scheduler to manage a team's access to limited computational resources.
License
khazit/Broker
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Broker was created as a tool for a team of 9 ML practitioners to manage theiraccess to a single GPU machine. The idea was to avoid running multiple jobs atonce (which would cause OOM errors), and to have a dashboard to visualize thejobs and their respective states.
According to Wikipedia:
A broker's prime responsibility is to bring sellers and buyers together andthus a broker is the third-person facilitator between a buyer and a seller.
In the same way, the global architecture of the system was designed around theScheduler, the API that connects users with runners.
Theoretically, the system could scale to multiple runners. But has yet to betested.
To install the Scheduler on the main host machine (API + Dashboard):
Use docker-compose to build the two images
$ docker-compose -f docker/docker-compose-dev.yml build
And run the app:
$ docker-compose -f docker/docker-compose-dev.yml up
You can either use the Web UI ...
... or the bash scriptbroker
for command line usage.
Runners are single file python scripts, that you can run directly on yourpython env or on a docker container usingdocker/runner-dev.Dockerfile
.The only dependancy isrequests
.
$ cd runner$ python runner.py --scheduler_ip [IP] --scheduler_port [PORT]
This is my first time writing an API / doing web dev. This is a developmentversion that has no security at all.
The dashboard uses this templatehttps://github.com/BootstrapDash/StarAdmin-Free-Vue-Admin-Template
About
Simple scheduler to manage a team's access to limited computational resources.