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.

Quick Start

pip install dapi
from dapi import DSClient

ds = DSClient()

# Translate path and submit a job
input_uri = ds.files.to_uri("/MyData/analysis/input/")

job_request = ds.jobs.generate(
    app_id="matlab-r2023a",
    input_dir_uri=input_uri,
    script_filename="run_analysis.m",
    max_minutes=30,
    allocation="your_allocation",
)

job = ds.jobs.submit(job_request)
job.monitor()

That’s it. DSClient() handles authentication and TMS credentials automatically.

More examples

Find apps

ds.apps.find("matlab")
ds.apps.find("opensees")

List files

files = ds.files.list(input_uri)
for f in files:
    print(f.name)

Check job results

job.print_runtime_summary()

outputs = job.list_outputs()
for output in outputs:
    print(output.name)

stdout = job.get_output_content("tapisjob.out")
print(stdout)

Query research databases

df = ds.db.ngl.read_sql("SELECT * FROM SITE LIMIT 5")
print(df)

PyLauncher parameter sweep

sweep = {"ALPHA": [0.3, 0.5, 3.7], "BETA": [1.1, 2.0, 3.0]}

ds.jobs.parametric_sweep.generate(
    "python3 simulate.py --alpha ALPHA --beta BETA --output out_ALPHA_BETA",
    sweep,
    "/home/jupyter/MyData/sweep_demo/",
)

job = ds.jobs.parametric_sweep.submit(
    "/MyData/sweep_demo/",
    app_id="designsafe-agnostic-app",
    allocation="your_allocation",
    node_count=1,
    cores_per_node=48,
)
job.monitor()

Next steps