Skip to content

moa-mudir/mudir

Repository files navigation

Mudir

Your Machine Learning laboratory's workspace management tool

License: GPL v3

Maintenance Made withJupyter Open Source Love Build Status

Mudir is a GPU workspace management tool, user-friendly, to protect your teams' research

Features

  • 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

System requirements

Setup

 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

Usage

  • 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 workspaces workspace delete

  • A workspace will have 2 ports, 1 for http jupyter and 1 for custom usage workspaces

  • 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

  • Navigate to Edit users to add/delete a user User add/delete

  • Clicking a workspace button when it is green it will redirect you to a jupyter environment Jupyter environment

Contributing

  • Use Commit standard
  • When you work on issue, branch out a branch name as follows:
    • feature/MUD-XX-description
    • bugfix/MUD-XX-description