Mudir is a GPU workspace management tool, user-friendly, to protect your teams' research
- You can use it with GPUs/CPUs servers
- Allows virtualization at low cost
- Jupyter environment support
- Two clicks to run your personal workspace
- A safe setup for experiments and datasets
- Ubuntu18.04 on host server(s)
- MySQL 8.0.24 server
- NVIDIA GPU with installed CUDA drivers >= 10.x
- Docker runtime 19.03.12
- nvidia-container-toolkit
- nodejs 12.20.1
- ** Optional FTP server
- ** Optional docker-compose 1.29.0
git clone [email protected]:moa-mudir/mudir.git
cd mudir
docker build -t <your-build-tag> .
npm install
cp default.env .env
- modify .env according to your preferences, you can change the host, password and image name you've just tagged to start
.env file
Plugin | Description | values (default) |
---|---|---|
DATABASE_HOST | <ip> of mysql database |
localhost |
DATABASE_USER | <username> of mysql database |
root |
DATABASE_PASSWORD | <password> of mysql database |
super2009 |
DATABASE_PORT | <port> of database |
3306 |
DATABASE_NAME | <name> of database |
containers |
BASE_DOCKER_IMAGE | <tag> of image |
jupyterlab:1.0 |
DATASET_URI | root folder of your dataset | /mnt/dataset |
TEMP_URI | tmp folder of your experiment | /mnt/exp |
SHARED_GPU | Shared memory by GPU | 4 |
UID | linux host user id | 1000 |
GID | linux host group id | 1000 |
DATA_VOLUME | (Optional) mounting database folder | /mnt/db |
After configuring the system, you can test it by running node src/app.js
if it successfully runs you can set it as a service to run on system up:
- edit gpu-manager.service modify the EnvironmentFile WorkingDirectory to point to the .env and root folder of the app correspondingly
sudo cp gpu-manager.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start gpu-manager.service
sudo systemct status gpu-manager.service
to check the status- ** If you want to host the mysql on the same machine, you can run
docker-compose up
to spin a database server
-
After successfully running the service, from your browser open
<host-ip>:3000
. -
Login with
admin/admin
credentials -
Navigate to workspaces to create/delete a workspace of a given name with description
-
A workspace will have 2 ports, 1 for http jupyter and 1 for custom usage
-
The name given to the workspace will create a directory on the filesystem (maybe mounted fileserver) to host the assets of experiment. Though allowing you to mount it over FTP and have persistent protected assets
-
Clicking a workspace button when it is green it will redirect you to a jupyter environment
- Use Commit standard
- When you work on issue, branch out a branch name as follows:
- feature/MUD-XX-description
- bugfix/MUD-XX-description