Tenants and management

A tenant is an allotment of users and resources within an organization. Organizations can leverage tenants for distinct purposes, such as development or production, and then share common resources across tenants. Each tenant has its own resources, users, and workloads. SambaStudio allows organizations to allocate resources across multiple tenants.

This document describes:

See Users and management for more information on SambaStudio user roles and management.

Structure and nomenclature

SambaStudio uses the following terminology in describing hardware, tenants, organizational structure, and users.

Organization

Organization describes an entity or customer using SambaStudio.

User

A user is part of an organization and can be assigned a predefined role. A user can be part of and assigned to multiple tenants. All users within the same tenant can view or manage projects and workloads present in the tenant.

Tenant

A tenant is an allotment of users and resources within an organization. Each tenant has its own resources, users, and workloads.

Default tenant

The default tenant is where all resources are allocated initially. During the SambaStudio installation, the default tenant (Default Tenant) is created and an organization administrator (OrgAdmin) is assigned to it.

When updating tenant RDUs and reallocation of resources is performed, resources will get removed from the selected tenant and assigned to the default tenant. The resources then can be added from the default tenant to another tenant.

Project

A project is a logical grouping of workloads and artifacts within a tenant.

Nodes and RDUs

A node describes the collection of SambaNova Systems' Reconfigurable Dataflow Units™ (RDUs) available per SambaNova hardware generation.

  • For SambaNova hardware generations SN10, SN30, or SN40L-8, a total of eight RDUs are available per node.

  • For SambaNova hardware generation SN40L-16, a total of sixteen RDUs are available per node.

  • If a job or endpoint requires more than one RDU to start, the RDUs must be available on the same node of the SambaNova hardware generation (SN10, SN30, SN40L-8, or SN40L-16).

Switching tenants

SambaStudio allows users to switch the active tenant they are using from any window in the platform. By switching tenants, users can view or manage projects and workloads that are present in multiple tenants.

A user must be assigned to more than one tenant by an organization administrator or tenant administrator in order to switch tenants.

  1. Click the tenant selection drop-down in the top menu bar. A list of your assigned tenants will display with the current tenant highlighted in blue and a checkmark. Only tenants assigned to you by your organization administrator or tenant administrator will be displayed.

    Tenant selection drop-down
    Figure 1. Tenant selection drop-down
  2. Select and click the destination tenant to switch. That will now be the active tenant.

RDUs Available

RDUs Available provides a summary of the RDUs for the selected tenant (displayed immediately to the left). It can be viewed from any window in the platform. Click RDUs Available in the top menu bar to view the RDUs Available summary.

  • Organization administrator’s (OrgAdmin) can access and view all available tenants in the RDUs Available summary.

  • Tenant administrator’s (TenantAdmin) can access and view tenants assigned to them in the RDUs Available summary.

  • The User role can access and view tenants assigned to them in the RDUs Available summary.

  • You can select All Tenants from the RDUs Available summary drop-down to display the aggregate RDU information of all tenants.

  • You can select a specific hardware generation from the RDUs Available summary drop-down to view its information.

  • If an Unhealthy RDU is detected, a tooltip will display in the RDUs Available summary for that RDU.

The RDUs Available summary interface displays information for each tenant and configured hardware generations, as described in the table below.

Description Example Image

This example image displays information for the default tenant. The default tenant has been created with 2 SN40L-8 and 2 SN10 nodes allocated to it (only SN40L-8 is displayed in the example image). Each node has 8 RDUs for a total of 32 RDUs in the tenant.

  • The default tenant is selected from the drop-down, displaying information for it.

    • There are 8 available RDUs (of the total 32 allocated) in the default tenant.

    • There are 24 busy RDUs (of the total 32 allocated) in the default tenant.

    • There are 0 unhealthy RDUs (of the total 32 allocated) in the default tenant, meaning all RDUs are functioning.

    • There are 32 total RDUs allocated in the default tenant.

  • The SN40L-8 hardware generation is selected from the drop-down, displaying information for it.

    • The default tenant has 2 SN40L-8 nodes allocated to it. Each node has 8 RDUs for a total of 16 RDUs.

    • SN40 has no available RDUs, with all 16 RDUs busy. This is indicated by the orange working icons displayed next to Node 1 and Node 2.

    • SN40 has 0 unhealthy RDUs, meaning all RDUs are functioning.

SN40 RDUs Available default tenant

This example image displays information for the same default tenant (with the same total 32 nodes allocated) as the above example. However, the SN10 hardware generation is selected from the drop-down displaying its information.

  • The default tenant is selected from the drop-down, displaying information for it.

    • The default tenant has 2 SN10 nodes allocated to it.

    • There are 8 available RDUs (of the total 32 allocated) in the default tenant.

    • There are 24 busy RDUs (of the total 32 allocated) in the default tenant.

    • There are 0 unhealthy RDUs (of the total 32 allocated) in the default tenant, meaning all RDUs are functioning.

    • There are 32 total RDUs allocated in the default tenant.

  • The SN10 hardware generation is selected from the drop-down, displaying information for it.

    • The default tenant has 2 SN10 nodes allocated to it. Each node has 8 RDUs for a total of 16 RDUs.

    • SN10 has 8 available RDUs, with 8 RDUs busy.

      • The icons next to Node 1 are green checks, indicating that all 8 are available.

      • The icons next to Node 2 are orange working, indicating that all 8 are busy.

    • SN10 has 0 unhealthy RDUs, meaning all RDUs are functioning.

SN10 RDUs Available default tenant

This example image displays a default tenant configured with an SN40L-16 hardware generation. You can see the 16 busy RDUs in the one node of the SN40L-16.

SN40L-16 RDUs Available default tenant

System Health

System Health provides information about your SambaStudio environment and its ability to function. Click System Health in the top menu bar to view the information.

The System Health box displays the following information.

Description Example Image
  • The status of All Tenants or a selected tenant is displayed at the top.

    • An alert will display if a tenant is unhealthy, as shown in the example image.

Example unhealthy tenant
  • NFS Connection identifies if the connection to your NFS is functioning correctly.

    • NFS Connection can be displayed for the entire system or a selected tenant.

    • An Unhealthy status means there is an issue and you should contact your Administrator or SambaNova representative.

  • The NFS Usage bar indicates how much of your NFS is being used.

    • An alert message will display when your NFS space is almost full and may interfere with artifact storage and workload productivity.

  • A ratio of unhealthy per healthy nodes is displayed at the bottom of the box.

System Health box

Tenant management using the GUI

An organization administrator (OrgAdmin) can click Tenant management from the left menu. The Tenant management window displays resource and allocation information available to an organization administrator (OrgAdmin).

Organizational resources

The Organizational resources section displays platform specific information.

  • Available nodes displays the number of available nodes in the SambaStudio platform.

  • Busy nodes displays the number of nodes that are currently busy performing tasks.

  • Total nodes displays the number of nodes that are available to perform new tasks.

Current allocations

The Current allocations section displays the current tenant configurations of the platform in a table and allows organization administrators (OrgAdmin) to manage tenant resources.

  • Click Create tenant to create a tenant using the GUI.

  • Click Update allocations to update the tenant allocations for a tenant using the GUI.

  • The Tenant name column displays the tenant name of each tenant.

  • The Allocated nodes column displays the number of nodes allocated to each tenant.

  • The Busy nodes column displays the number of nodes that are currently busy performing tasks of each tenant.

  • The Available nodes column displays the number of nodes of each tenant that are available to perform new tasks.

  • The Status column displays the current status of each tenant.

    • Creating displays when a new tenant is being created.

    • Updating displays when a tenant allocation is being updated.

    • Ready displays when a tenant has been setup, but has no nodes allocated to it.

    • Available displays when a tenant has been setup and has at least one node allocated to it.

    • Deleting displays when the tenant has been confirmed by an organization administrator (OrgAdmin) to be permanently deleted.

    • Failed displays when the process of creating, deleting, or updating a tenant fails.

  • The three dots open a drop-down menu that allows you to update allocations of the tenant in that row, or delete the tenant.

Tenant management window
Figure 2. Tenant management window

Tenant management using the CLI

Similar to the GUI, the SambaNova API (snapi) provides tenant management capabilities via the CLI.

List the available tenants using the CLI

The example below demonstrates how to view the available tenants using the snapi tenant list command.

This command is available to all user roles.

Example snapi tenant list command
$ snapi tenant list
NAME                    CREATED AT                                  LAST UPDATED                                STATUS
default                 2023-04-28 13:23:58.872154 +0000 UTC        2024-01-19 14:40:20.706376 +0000 UTC        Available
tenant1                 2023-04-28 13:37:10.398432 +0000 UTC        2024-01-20 07:44:07.661575 +0000 UTC        Ready
tenant3                 2023-05-02 09:40:33.767691 +0000 UTC        2023-11-10 13:18:41.811529 +0000 UTC        Ready

Tenant information using the CLI

You can use the snapi tenant info command to display information of a specific tenant.

This command is available to all user roles.

You will need to specify the tenant you wish to view for the --tenant input. The example command below displays information for the default tenant, including:

  • The assigned ID of the tenant.

  • The Name of the tenant.

  • Allocated nodes displays the number and generation version of nodes allocated to the tenant. In the example below, the default tenant has two SN10 nodes.

  • Busy nodes displays the number of nodes that are currently busy performing tasks of the tenant. In the example below, one of the two allocated SN10 nodes is busy.

  • Available nodes displays the number of nodes of the tenant that are available to perform new tasks. In the example below, one of the two allocated SN10 nodes is available.

  • Status displays the current status of the tenant.

    • Creating displays when the tenant is being created.

    • Updating displays when the allocation of the tenant is being updated.

    • Ready displays when the tenant has been setup, but has no nodes allocated to it.

    • Available displays when the tenant has been setup and has at least one node allocated to it.

    • Deleting displays when the tenant has been confirmed by an organization administrator (OrgAdmin) to be permanently deleted.

    • Failed displays when the process of creating, deleting, or updating a tenant fails.

Example snapi tenant info
$ snapi tenant info \
    --tenant default

         Tenant Info
         ============
ID                      : 0e6890c5-973c-4024-ac43-1c302aa81950
Name                    : default
Display Name            : default
Allocated Nodes          : {"SN10": 2}
Busy Nodes               : {"SN10": 1}
Available Nodes          : {"SN10": 1}
Created at              : 2023-04-28 13:23:58.872154 +0000 UTC
Last Updated            : 2024-01-19 14:40:20.706376 +0000 UTC
Status                  : Available

Create a tenant using the GUI

Organization administrators (OrgAdmin) can create a new tenant using the GUI by following the steps below.

  1. Click the Create tenant button. The Create new tenant box will open.

  2. Enter a name for the tenant in the Add tenant name field. Note that spaces are not accepted in this field.

  3. Click Create to complete the process. Click Cancel to stop the process and return to the Tenant management window.

Create a tenant using the CLI

The example below demonstrates how organization administrators (OrgAdmin) can create a tenant using the snapi tenant create command. You will need to specify a name for the tenant.

Example snapi tenant create
$ snapi tenant create \
	--name <name-for-new-tenant>

Update tenant resource allocations using the GUI

Organization administrators (OrgAdmin) can change the number of nodes allocated to a tenant using the GUI by following the steps below.

Resource allocations cannot be changed for the default tenant.

  1. Click the Update allocations button. The Update resource allocation box will open.

  2. Select the tenant you wish to manage from the Select a tenant drop-down.

  3. Change the number of nodes per SambaNova hardware generation version assigned to the tenant by inputting the number or clicking the up or down arrows.

    1. To remove a node, precede the number with a minus (-1) or click the down arrow.

    2. As shown in Figure 3, tenant1 currently has no nodes allocated to it.

    3. As shown in Figure 3, one node of the SN30 hardware generation version is being added for tenant1.

  4. Click Update to complete the process. Click Cancel to stop the process and return to the Tenant management window.

Update resource allocation
Figure 3. Update resource allocation

Update tenant RDUs using the CLI

The example snapi tenant update command below demonstrates how organization administrators (OrgAdmin) can update an existing tenant allocation using the CLI.

You will need to specify the following for the snapi tenant update command:

  • The tenant that will be updated for the --tenant input.

    • tenant1 is used in the example below.

  • The number of nodes to add or remove for the --rdu-nodes input.

    • We specified 1 node to be added in the example below.

    • To remove a node, precede the number with a minus (-1).

  • The SambaNova hardware generation (SN10, SN30, SN40L) that contains the --rdu-nodes for the --arch input.

    • We specified SN10 in the example below.

The snapi tenant update command below adds one SN10 node to tenant1.

Example snapi tenant update
$ snapi tenant update \
	--tenant tenant1 \
	--rdu-nodes 1 \
	--arch SN10

Delete a tenant using the GUI

Organization administrators (OrgAdmin) can delete a tenant using the GUI by following the steps below. Please be aware of the following considerations when deleting a tenant:

  • The default tenant cannot be deleted.

  • All jobs, endpoints, datasets, and models created in the tenant will be deleted.

  • Associated users will no longer have access to the tenant.

  • RDUs allocated to the tenant will be added to the default tenant.

  • Tenant deletion is irreversible.

Tenant deletion times vary and are dependent on the number of resources associated with the tenant.

  1. In the Current allocations table, click Delete tenant from the three dots drop-down in the row of the tenant you wish to delete.

    1. The Permanently delete this tenant box will open describing the associated actions of deleting the tenant.

  2. Click the acknowledgement statement checkbox and Confirm to proceed.

  3. The Deleting tenant panel will display describing the steps of the tenant deletion process. The blue numerical circle indicates the step progress of the tenant deletion. Click anywhere in the SambaStudio screen to close the panel.

  4. The tenant status will change to Deleting. Click View to open the Deleting tenant panel and monitor the progress of the tenant deletion.

  5. The tenant will be removed from the Current allocations table when the deletion process is complete.

Delete a tenant using the CLI

The example commands below demonstrate how organization administrators (OrgAdmin) can delete a tenant using the snapi tenant delete command. Please be aware of the following considerations when deleting a tenant:

  • The default tenant cannot be deleted.

  • All jobs, endpoints, datasets, and models created in the tenant will be deleted.

  • Associated users will no longer have access to the tenant.

  • RDUs allocated to the tenant will be added to the default tenant.

  • Tenant deletion is irreversible.

Tenant deletion times vary and are dependent on the number of resources associated with the tenant.

The example snapi tenant delete command illustrates the following:

  • The command specifies user-workflows as the tenant to be deleted.

  • Similar to the GUI, the associated actions of deleting the tenant are described.

  • Additionally, the command prompts you to confirm that you want to proceed with deleting the tenant by entering yes.

Example snapi tenant delete
$ snapi tenant delete \
	--name user-workflows

Deleting a tenant entails four steps:
    • Step1: Unsharing Datasets and Models (Revoking access to all datasets and models shared with other
tenants)
    • Step2: Delete Jobs and Endpoints (Terminating all running jobs, live endpoints, and deleting them)
    • Step3: Delete Datasets and Models (Deleting all datasets and models associated with this tenant)
    • Step4: Tenant Deletion (Returning RDUs to the default tenant and deleting all traces of this tenant)

Are you sure you want to proceed? (yes/no):: yes

To return to the CLI prompt, press Ctrl+C
The tenant deletion process will continue in the background. You can view the status using the command: snapi
tenant deletion-progress <tenant-name>

--------------------------------
Tenant Deletion in Progress...
--------------------------------

[Progress] Steps: 1 -  Done  | 2 - Done | 3 - Done | 4 - Done

-------------------------------------------------------
Deletion of user-workflows Tenant Succesful
-------------------------------------------------------

Run snapi tenant delete --help for command options and information.

View tenant deletion progress using the CLI

Organization administrators (OrgAdmin) can view the deletion progress of a tenant by running the snapi tenant deletion-progress command. The example command below specifies user-workflows for the tenant.

Example snapi tenant deletion-progress
$ snapi tenant deletion-progress \
	--name user-workflows

Deleting a tenant entails four steps:
    • Step1: Unsharing Datasets and Models (Revoking access to all datasets and models shared with other
tenants)
    • Step2: Delete Jobs and Endpoints (Terminating all running jobs, live endpoints, and deleting them)
    • Step3: Delete Datasets and Models (Deleting all datasets and models associated with this tenant)
    • Step4: Tenant Deletion (Returning RDUs to the default tenant and deleting all traces of this tenant)

[Progress] Steps: 1 -  Done  | 2 - Done | 3 - In Progress | 4 - Not Started