[ Teaching ]  Leadtek GDMS Function (3) Container

Leadtek GDMS Function (3) Container

  By : Leadtek AI Expert     18

Leadtek GPU Docker Management System (GDMS) is a Docker-based GPU resource allocation and management software. GDMS uses an intuitive and graphical user interface to centrally manage AI and big data projects and development resources for universities/schools, research institutions, and corporations.


Combined with Leadtek WinFast GPU workstations and servers, GDMS allows you to maximize resource usage, manage your tasks more efficiently, and reduce the total cost of ownership. All kinds of schools, institutions, and corporations will benefit from GDMS in their development environment deployment, no matter it’s an AI development project, an AI training course, or a GPU accelerated application project.



There are 7 functions in GDMS: 

(1) Overview

(2) Server

(3) Container

(4) Image

(5) Task

(6) Log

(7) Settings


In this article, we will talk about function (3) Container.


(3) Container

The Container section includes Project and Container. A Project can be set to Share or Exclusive mode, while Containers must be managed under an existing Project. The latter provides the core service functions, allowing users to open Containers for research or microservices based on their needs. 


1.  Project

Project Page Field Descriptions: 

  • Project: User-defined project name.
  • Mode: Project mode, either Share (allowing multiple Containers to use a single GPU card) or Exclusive (one Container occupying one or more GPU cards).
  • Description: User-defined project description.
  • Container Count: The number of Containers in the project.
  • Last Edited: The last edit time.  

Expanding the project allows viewing of each project's Container names, IP addresses, GPU Server affiliation, Docker Image, and the last online time. 


Adding a New Project: 

Click the [ADD] button on the Project page to enter the settings. On the Info tab, input the project name (required), project mode (Share/Exclusive), and description (optional). Click [Next > ] or directly select the Resource tab. 


On the GPU tab, choose whether to limit the Project's GPU usage. If Limit is set to [Enable], a list of GPUs available for selection from the GPU Server will appear. If Limit is set to Disable, the project can use any non-specified GPU.  


The Share Storage tab allows choosing whether to limit shared storage usage. If Limit is set to Enable, a list of available shared storages will appear. If Limit is set to Disable, the project cannot use any shared storage.  


On the Resource tab, choose whether to limit the project's total GPU memory, number of Containers, and disk space. If needed, set Limit to [Enable] and add the conditions for maximum GPU memory usage and total number of Containers. Click [Next >] or select the Access tab.  


On the Access tab, set user viewing permissions. Choosing Custom in the Allow field will open a setting window where you can select the account and role (Editor or Viewer). Click [ADD] to complete the setting.


Clicking the Project name will bring up the toolbar at the bottom for operations, including: 

  •  Action: Start and Stop Containers within the project. 
  • Export: Export all Container connection information (IP/Password) in csv, pdf, or excel format.
  • Edit: Edit the project name and description.
  • View: View the project details.
  • Delete: Delete the project. 

 

2.  Container 

Page Field Descriptions: 

  • Container: Container name (system-defined).
  • Project: The project the Container belongs to.
  • IP Address [GPU]: The Container's connection IP address and GPU number.
  • Server: The GPU Server the Container belongs to.
  • Docker Image: Docker Image name and version.
  • Status: Container status (Running/Exited). 


Adding a New Container: 

Click the [ADD] button on the Container page to enter the settings. On the Info tab, input the Container name, choose the project mode (Share/Exclusive), project name, and resource allocation mode. Share mode offers automatic and manual resource allocation, while Exclusive mode offers only manual allocation. Click [Next >] or select the GPU tab.  

In the GPU tab, you can input GPU resource allocation as explained in the previous page's Info section. The sharing mode (Share) is divided into automatic allocation and manual allocation, and the content on this page will slightly vary depending on the selected option. 


After selecting the sharing mode > Manual Allocation, the content shown in the above image will appear in the GPU tab. Please fill in the amount of GPU memory required by the container in the 'Memory in Single GPU (GB)' field, and select any GPU server in the 'Server' field. Then, choose any available GPU under that server. Once completed, directly click [Next >] button at the bottom right or directly select the 'Docker Image' tab. 

 


After selecting the sharing mode > Automatic Allocation, the content shown in the above image will appear in the GPU tab. This feature supports adding a large number of containers. Please fill in the amount of GPU memory required by the container in the 'Memory in Single GPU (GB)' field, and enter the number of new containers in the 'Total Amount of Container' field. Once completed, directly click the [Next >] button at the bottom right or directly select the 'Docker Image' tab. This mode also supports entering 0GB GPU RAM (but a GPU still needs to be selected), which can be used for containers that do not require GPU computing. 


After selecting the exclusive mode > Manual Allocation, the content shown in the above image will appear in the GPU tab. Please select any GPU server in the Server field and choose an available GPU under that server. In this mode, you can select one or multiple GPUs. If a GPU is already occupied by another container, it will not appear in the menu. Once completed, directly click the [Next >] button at the bottom right or directly select the 'Docker Image' tab. 


In the Docker Image tab, you can select the framework version to use, including user-defined Docker images that will also be listed in the menu. Once completed, directly click the [Next >] button at the bottom right or directly select the 'Additional Package' tab. 

   

In the Additional Package tab, Jupyter Notebook is provided by default as the development platform. Please set "Install Jupyter Notebook" to [Enable], and enter the Jupyter Notebook login password in the "Jupyter Notebook Password" field. This password cannot be changed. GDMS also provides the SSH remote login function for the container. If you need to use this function, please set the "Install SSH" field to [Enable], and fill in the SSH account and password in the "SSH Account" and "SSH Password" fields. If the user intends to update and download packages within the container, please set the "Use Sudo" field to [Enable]. Once completed, directly click the Next > button at the bottom right or directly select the "Port" tab. The following four tabs are optional settings, and if no related configuration is needed, you can directly click [ADD] to start adding the container. 


The Port tab is an optional setting. If no configuration is needed, you can directly proceed to the next setting tab or click ADD to start adding the container. The Port tab allows users to define custom ports in addition to the default ports. Please manually enter the ports  to be opened in the "Host Port" field. When the Jupyter Notebook feature is enabled, the system will automatically add port 8888. If the SSH remote login feature is enabled, the system will automatically add port 22. Once completed, directly click the [Next >] button at the bottom right or select the "Data Path" tab. 


The Data Path tab is an optional setting. If no configuration is needed, you can directly proceed to the next setting tab or click [ADD] to start adding the container. The Data Path tab allows users to define a custom data storage path. The system will provide a default data storage path (which can be checked after opening the container). If the user defines their own path, the system will automatically redirect the storage path to the user-defined location, with the fixed path within the container being /CtnData. By clicking [Export], on the container page, the stored data can be downloaded to the client. Please manually enter the path in the "Physical Path" field, but note that when setting the Physical Path manually, the data export feature will not be available. Users will need to use methods like sftp to download the data. Once completed, directly click the [Next >] button at the bottom right or select the "CPU Limit" tab. 

 

The CPU Limit tab is an optional setting. If no configuration is needed, you can directly proceed to the next setting tab or click ADD to start adding the container. The Limit tab allows users to set limits on the maximum CPU threads and memory usage within the container. If there is a need to restrict hardware resources, please set the option to [Enable] and enter the maximum number of CPU threads or maximum memory usage (MB) in the "CPU Max Thread" and "CPU Max Memory (MB)" fields. Once completed, directly click the [Next >] button at the bottom right or select the "Termination" tab. 


The Termination tab is an optional setting. If no configuration is needed, you can directly click [ADD] to start adding the container. The Termination tab allows users to define whether to retain the original data when the container is deleted (not applicable to custom Data Path settings) and to schedule the automatic deletion date and time of the container. If you want to enable the data retention feature, please set the "Keep Data When Delete" field to [Enable].If you need to set up the automatic deletion of the container, please set the "Container Termination" field to Enable, and specify the date and time. Once completed, directly click the [ADD]. 


Clicking the Container name will bring up the toolbar at the top for operations, including: 

  • Action: Allows you to start and stop the container.
  • Export: Allows you to export data stored within the container (applicable to users who are not using a custom Data Path).
  • Commit: Provides the option for users to export a specific container as a Docker image and save it in the image list, which will be explained in the next section. 
  • View: View the contents of the container.
  • Delete: Delete the container.