Denvr AI Services Docs
  • Welcome to Denvr AI Services Docs!
  • OVERVIEW
    • Getting started
      • Launch a virtual machine
      • Secure Shell (SSH): Best Practices
      • API Usage samples
      • Registration
    • Data centers
    • Shared responsibility model
    • Technical support
    • What's new!
  • PLATFORM
    • Dashboard
    • Applications
    • Virtual machines
    • Bare metal
    • Storage
    • Networking
    • User management
    • Billing
  • API Reference
    • Authentication
    • Clusters
    • Applications
    • Virtual machines
    • VPCs
    • Bare metal
  • Additional Information
    • FAQs
      • Desktop vs data center GPUs
      • Differences of bare metal and virtual machines
      • GPU monitoring
      • Using Github with SSH keys
      • Data persistence and recovery
      • Do you support Kubernetes?
      • Installing GPU drivers
      • What is the network bandwidth?
      • What ports are publicly accessible?
      • What is persistent local storage?
      • Adding DAS to /etc/fstab
      • Provisioning States
    • Policies
      • Terms of Service
      • Privacy Policy
      • Acceptable Use Policy
      • Maintenance policy
Powered by GitBook
On this page
  • Application Catalog
  • Creating an Application
  • Basic information
  • Application
  • Instance type
  • Additional storage
  • Access credentials
  • Launch application
  • Viewing Applications
  • Managing applications
  • Custom Applications
  • FAQ
  1. PLATFORM

Applications

Containerized applications for data scientists and speed of use

PreviousDashboardNextVirtual machines

Last updated 1 month ago

Applications are docker containers that include all dependencies to run a system. These are provided by hardware vendors or uploaded by the tenant.

Application Catalog

The catalog contains versioned apps that Denvr has selected for various uses. They are focused on data scientists who prefer a fast-start environment like PyTorch, RAPIDS, and JAX along with a JupyterLab.

Denvr Dataworks can setup new applications as requested including specific versions.

Creating an Application

Denvr AI Compute has a single page view to create applications including all of the configuration options that are relevant.

Basic information

This section provides essential details for setting up a container, including the instance name and where resources are allocated from.

Name

Refers to the unique identifier or label for the application. It helps users manage and track different containers within their infrastructure.

Resource pool

Defines how compute resources are allocated, either on-demand for dynamic allocation or reserved for dedicated single-tenant resources.

Application

This section provides different pre-defined versions of the application to be selected

Release

Select a specific version of the container. This also displays the docker hub source repository used.

Instance type

Defines the overall configuration of the application container, including the type of hardware (such as GPU or CPU), performance characteristics, and resource allocation.

GPU platform

Refers to the type of GPU hardware available for running AI and computational tasks. Different platforms offer varying levels of performance and specialization for different workloads.

CPU platform

Refers to the type of central processing unit (CPU) hardware available for provisioning. Different CPU platforms offer varying levels of performance for general-purpose computing, suited for tasks that do not require specialized GPU acceleration.

Instance size

Defines the specific resource allocation, including the number of GPUs, CPUs, memory, and storage, for a virtual machine. It determines the power and capacity of the compute environment.

Additional storage

File volumes can be automatically attached to your machine instances. Volumes can be accessed my multiple instances simultaneously.

Personal

This is dedicated storage that is only accessible by the specific user, ensuring privacy and security. It is mounted to a unique directory path (e.g., /home/ubuntu/personal).

Tenant shared

This storage is accessible by multiple users or virtual machines within the same tenant. It is mounted to a shared directory path (e.g., /home/ubuntu/tenant-shared), enabling collaboration and shared access.

Access credentials

Containers support secure access using Jupyter Authentication Tokens for JupyterLab and optional SSH keys for passwordless login. Enable SSH to manage the environment securely with the default user ID and added SSH keys.

Jupyter Authentication Token

Applications that include JupyterLab require a shared password for basic authorization. Please select a difficult password for better security.

SSH Keys

SSH (Secure Shell) keys are cryptographic keys used to authenticate access to the application. Users can enter or add additional SSH keys as required.

Launch application

The right panel shows the application summary. Press Launch Application to create the virtual machine.

Viewing Applications

The application detail screen provides an overview of the selected application, including its online status, options to start, stop, or delete, and a direct link to access the JupyterLab interface. Key information about the application, such as instance details, type, hardware configuration, and network settings, is displayed for easy management and monitoring.

Managing applications

The Applications overview screen displays all running containers and provides fast access to lifecycle actions and access to the JupyterLab interface.

Custom Applications

From the application catalog you can also specify a custom application. When launching a custom application you'll need to specify:

  1. The registry provider (e.g., docker, github, etc)

  2. Whether it is a public or private registry

  3. Image URL to pull from

  4. Readiness port to check when your container is online

  5. Image CMD override

  6. Username and password/token for private registries

This functionality is still in beta and currently has two restrictions.

  1. Custom images can only be deployed on reserved nodes

  2. The CMD override must be supplied regardless of whether it existing in the source Dockerfile

FAQ

A few tips to help you get started with custom applications

CMD Overrides

["jupyter notebook --ip=0.0.0.0"]

Valid

  1. ["jupyter", "notebook", "--ip=0.0.0.0"]

  2. ["/bin/bash", "-c", "jupyter notebook --ip=0.0.0.0"]

  3. ["/bin/bash", "-c", "echo starting; jupyter notebook && echo ending"]

NOTES:

  • In the invalid case, the CMD is read as a one argument, which leads to errors.

  • In all of the valid cases, each argument is passed as a string to a command.

Debugging

Container logs do not persist beyond the lifetime of an application. To debug applications we recommend including/starting a remote access service (sshd) and then running a command that keeps the applications running. Ex)

["/bin/bash", "-c", "sleep infinity"]

NOTE

In this case, any commands after sleep infinitywill not be executed.

Tip

Storage

Readiness Ports

Inputs should follow the Provide each part of the command as a separate element in the array, unless you explicitly want a shell to interpret the string. Invalid

During chaining, && and ; are used for conditional and unconditional evaluation. See the for more details.

Use a tool like to reap zombie process and prevent process table exhaustion.

Direct attached and additional storage is mounted at /mntinside your application. For catalog applications, a symlink to /hom/ubunuis also provided for your convenience. See our documentation on for more details.

The readiness port just tells Denvr when your application (or virtual machine) is online and accessible. This does not control or restrict what ports are exposed/accessible. See our section on for more details.

docker exec form.
bash manual
tini
storage tiers
provisioning states
Application Catalog
Creating an Application
Viewing Applications
Managing Applications
Custom Applications