Compute resource

Introduction

A Compute Resource is part of our abstraction layers. It represents a description of a Node Type composed of some descriptive information (Generic fields) and constraints that the node has to meet.

The constraints defined in the Compute Resource will be executed when a model will be deploy on a specific infrastructure (public cloud or bare-metal machine). The constraints will help to identify the best Node Type that match constraints defined.

How to create your JSON file

The JSON will be create based on two different type of fields:

  • Generic fields
  • Constraints fields

When the JSON file has been created, it has to be uploaded on the resource page to create the new compute resource inside PBScloud.io. Notice, that PBScloud.io will had some automatically generated fields to the compute resource. This automatically generated fields are not described in this document.

Generic fields

Generic fields are fields that define the Compute Resource. They are mandatory for each Compute Resource creation.

  "compute_resource_version": 1,
  "label": "PBS Graphical Node",
  "description": "Node containing a Nvidia GPU and at least 8 GB RAM. March 2017, pclm-team@altair.com",
  "author": "altair-pbscloud",
  "name": "PBS Pro minimal",
  "revision": 1,
  "created_at": "2017-03-22 11:29",
  "keywords": ["gpu", "nvidia"],
  "icon_link": "https://pictures.myserver.com/pbs-graphical-node.png",
  • compute_resource_version : represents the version of the compute resource definition format
    • Always equal 1
  • label : represents the name that will be shown in the Model editor
    • Format: Text
  • description : represents the description that will be shown in the Model editor
    • Format: Text
  • author : represents the name of the author of this compute resource
    • Format: Text
  • name : represents the name of the compute resource, used only internal, must be unique
    • Format: Text
  • revision: represents the version of the compute resource
    • Format: integer
  • created_at: represents the date of creation
    • Format: date (YYYY-MM-DD HH:MM)
  • keywords: represents a list of word that could be use in the UI to search for the compute resource
    • Format: Array of words
  • *icon_link”: represents a HTTPs link to download an image to represents the compute resource
    • Format: HTTPS link
    • Optional

Constraints fields

Constraints fields are a list of limitation that will be used during the instanciation of the model. Limitation are restrictive during the instanciation.

"constraints": {
  "gpu": { "min": 1, "vendor": "nvidia" },
  "cpu": { "min": 2, "max": 8 },
  "memory": { "min": 16, "unit": "GiB" },
  "local_disks": [ { "min": 40, "unit": "GiB", "type": "magnetic" } ]
  "infiniband": true
}

All fields are optional.

  • gpu: represents a Graphical Process Unit
    • Could be constrained by a min minimal value and a max maximal values
    • Could contain a vendor, currently only “nvidia” is available
  • cpu: represents a Compute Process Unit, describes CPU cores
    • Could be constrained by a min minimal value and a max maximal values
  • memory: represents the AM
    • Needs a unit, which can be “GiB”, “MiB”, “KiB”, or just “B”
    • Could be constrained by a min minimal value and a max maximal values
  • local_disks: represents local storage system, directly attached to the local compute node
    • Needs a unit, which can be “GiB”, “MiB”, “KiB”, or just “B”
    • Could be constrained by a min minimal value and a max maximal values
    • Could integrate a type: “magnetic” or “ssd”.
  • infiniband: represents the need of Infiniband networking attached to the compute node
    • It’s a boolean value (true or false), the default value is false.

Examples

Simple graphical node

This example describes a node type with a GPU and at least 8GiB of memory.

{
  "compute_resource_version": 1,
  "label": "PBS Explicit Node",
  "description": "Node containing at least 16 CPU cores, 64 GB RAM, and 320G SSD local disk space. March 2017, pclm-team@altair.com",
  "author": "altair-pbscloud",
  "name": "pbs-explicit-node",
  "revision": 1,
  "created_at": "2017-03-22 11:29",

  "constraints": {
    "memory": { "min": 64, "unit": "GiB" },
    "cpu": { "min": 16 },
    "local_disks": [ { "min": 320, "unit": "GiB", "type": "ssd" } ]
  }
}

Advanced HPC compute node

This example describes an HPC compute node with at least 16 CPU cores, infiniband and 126 GiB of memory.

{
    "compute_resource_version": 1,
    "label": "PBS Graphical Node With Infiniband",
    "description": "Node containing a Nvidia GPU, at least 4 CPU cores, 8 GB RAM and Infiniband. October 2017, pclm-team@altair.com",
    "author": "altair-pbscloud",
    "name": "pbs-graphical-node-ib",
    "revision": 1,
    "created_at": "2017-10-23 11:29",

    "constraints": {
      "gpu": { "min": 1, "vendor": "nvidia" },
      "memory": { "min": 126, "unit": "GiB" },
      "cpu": { "min": 16 },
      "infiniband": true
    }

}