Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Systems

List available systems

from dapi import DSClient
ds = DSClient()

# HPC + storage systems (default)
ds.systems.list()

# HPC execution systems only (with credential status)
ds.systems.list("hpc")

# Storage systems only
ds.systems.list("storage")

# All systems including internal
ds.systems.list("all")

TACC Systems

DesignSafe jobs run on TACC execution systems. For hardware specs, node types, queues, and allocations, see the DesignSafe Workflows: Compute Environments.

System IDSystemNotes
stampede3Stampede3Primary DesignSafe execution system (SKX, ICX, SPR, PVC nodes)
fronteraFronteraLeadership-class, 56-core Cascade Lake nodes
ls6Lonestar6General-purpose, 128-core AMD Milan, NVIDIA A100 GPUs

Queues

Returns a DataFrame of batch queues on an execution system.

# DataFrame with name, hpcQueue, maxNodes, maxCoresPerNode, maxMinutes, maxMemoryMB, maxJobsPerUser
ds.systems.queues("stampede3")

# Raw Tapis queue objects
ds.systems.queues("stampede3", output="raw")

TMS Credentials

TMS (TACC Management System) manages SSH key pairs that allow Tapis to access TACC systems on your behalf. DSClient() establishes TMS credentials automatically on first use. The methods below are for manual management.

Establish Credentials

ds.systems.establish_credentials("stampede3")
ds.systems.establish_credentials("frontera")
ds.systems.establish_credentials("ls6")

If credentials already exist, establish_credentials does nothing (idempotent). To force re-creation:

ds.systems.establish_credentials("frontera", force=True)

Check Credentials

if ds.systems.check_credentials("frontera"):
    print("Ready to submit jobs on Frontera")
else:
    ds.systems.establish_credentials("frontera")

Revoke Credentials

ds.systems.revoke_credentials("frontera")

Using TMS from Outside DesignSafe

TMS credentials work from any environment, not just DesignSafe JupyterHub. As long as you can authenticate with Tapis (e.g., via .env file), you can manage TMS credentials from your laptop, CI/CD pipelines, or any Python script:

from dapi import DSClient

ds = DSClient()
ds.systems.establish_credentials("frontera")

# Now submit jobs as usual
job_request = ds.jobs.generate(...)
job = ds.jobs.submit(job_request)

Troubleshooting TMS

Non-TMS System:

CredentialError: System 'my-system' uses authentication method 'PASSWORD', not 'TMS_KEYS'.

TMS credential management only works for systems configured with TMS_KEYS authentication. TACC execution systems (frontera, stampede3, ls6) use TMS_KEYS.

System Not Found:

CredentialError: System 'nonexistent' not found.

Verify the system ID. Common system IDs: frontera, stampede3, ls6.