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 ID | System | Notes |
|---|---|---|
stampede3 | Stampede3 | Primary DesignSafe execution system (SKX, ICX, SPR, PVC nodes) |
frontera | Frontera | Leadership-class, 56-core Cascade Lake nodes |
ls6 | Lonestar6 | General-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.