Custom Tapis Apps#
Using Public Apps vs. Writing Your Own
On DesignSafe, you have two productive ways to run work on HPC systems:
Use a public Tapis App — pre-configured, maintained templates for common tools (e.g., OpenSees, OpenFOAM). Fastest path to results, minimal setup.
Author your own Tapis App — a custom template you control (wrapper + app.json [+ optional profile.json]) when you need different binaries, launch logic, inputs/parameters, or project-specific defaults.
How to choose (at a glance): Start with a public app if your workflow fits its interface. Write a custom app when you need non-standard flags, containers/modules, pre/post steps, or a lab-specific interface you’ll reuse.
A. Use an Existing (Public) App#
Public apps on DesignSafe are vetted templates for common tools. They’re the fastest path to results.
Where to find them
Web Portal → Tools & Applications to browse/search and read the app’s help page.
In notebooks/CLI, grab the app’s appId (and optional version) from the portal and submit jobs programmatically.
How to run effectively
Review the app’s inputs and parameters (from its schema).
Start with a small test case; keep default resources, tune later.
Prefer stable/latest versions shown in the catalog.
Keep inputs on a Tapis-visible system (e.g., MyData, Work).
When public apps are ideal
Your workflow matches the app interface.
You want a supported, reproducible environment with minimal setup.
You don’t need custom launch logic or unusual dependencies.
or
B. Write Your Own App#
Create a Tapis App when you need custom behavior, different software versions, or a specialized interface for your project.
Building blocks
Wrapper (e.g., tapisjob_app.sh): non-interactive, writes outputs to $PWD, handles launch (ibrun/mpirun/srun) and logging.
app.json (required): app ID/version, execution system/type (HPC), job type (MPI/SERIAL), defaults (nodes/ppn/walltime), inputs & parameters.
profile.json (optional): modules and env vars (or use containers).
Tiny test dataset for validation.
Registration & sharing
Register via portal or API, then share with your project/team.
For catalog visibility, follow DesignSafe’s review/publication process.
Best practices
Version every change (e.g., 1.2.0); keep a changelog; avoid breaking users.
Use Tapis URIs and parameters—no hard-coded paths.
Set sensible defaults (resources, inputs) and document them.
Keep profiles minimal; prefer containers or a short modules list.
Provide clear labels/descriptions so users don’t guess.
When custom apps shine
New binaries/flags, custom pre/post steps, lab-specific UI.
Automated parameter sweeps, ensembles, multi-stage workflows.
A reproducible template your group can reuse.
Quick Chooser#
Need |
Public app |
Your app |
|---|---|---|
Fast start with a standard tool |
✅ |
|
Custom binaries, flags, or launch logic |
✅ |
|
Team-specific interface & defaults |
✅ |
|
Minimal maintenance |
✅ |
|
Full control / special dependencies |
✅ |