DoPQ 1.0

Welcome! This is the documentation for DoPQ version 1.0. It’s completely written in Python 3.

DoPQ stands for Docker Priority Queue. It’s a software primarily made for running heavyweight deep learning models in the form of docker containers on a multi-gpu system. Internally it maintains a priority queue, including a penalty scoring system, hence ensures the balance between occupied gpu’s among valid users.

Get the code

The source is available on Github. For any kind of information, please email to reza.rahman@tum.de

DoPQ Architecture

DoPQ is build on MVC pattern. From a broader perspective, the whole architecture is a ServerClient system. Server contains a provider and a priority queue process constantly running for fetching, building docker images and run those in the central gpu-machine. The Client part does the trivial job for updating the priority queue’s status, including information about running docker containers, history of completed docker images, how many docker containers are currently lined up in the queue for executing etc. It also provides options for sending commands from the client side to server for valid users registered into the DoPQ database.

_images/dopq_workflow.jpg

Figure: Inter Process communication between DoPQ Server–Client

The DoPQ User Interface looks like the following:

_images/dopq_interface.png

Figure: Client interface for DoPQ