diff --git a/applications/compress-dynamic/app.json b/applications/compress-dynamic/app.json new file mode 100644 index 0000000..75f98a3 --- /dev/null +++ b/applications/compress-dynamic/app.json @@ -0,0 +1,122 @@ +{ + "id": "compress-dynamicexecsystem", + "version": "0.0.3", + "description": "Compress a file or folder for download.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://taccaci/compress:0.0.3", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": false, + "jobAttributes": { + "description": "Compress a file or folder for download.", + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}/input", + "execSystemOutputDir": "${JobWorkingDir}/output", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": false, + "isMpi": false, + "mpiCmd": null, + "cmdPrefix": null, + "parameterSet": { + "appArgs": [ + { + "name": "Compression Type", + "description": "Select the type of compressed file, either a Gzipped TAR file (.tar.gz) or a Zip file (.zip).", + "inputMode": "REQUIRED", + "arg": "tgz", + "notes": { + "enum_values": [ + { + "tgz": "tar.gz" + }, + { + "zip": "zip" + } + ] + } + }, + { + "name": "Archive File Name", + "description": "Output archive file name. The selected Compression Type will be appended to this filename. Keep the file name inside single quotes. Any special characters in the file name will be replaced with an underscore.", + "inputMode": "REQUIRED", + "arg": "Archive", + "notes": { + "validator": { + "regex": "^[a-zA-Z0-9!@#%^*-_.,'? ]+$", + "message": "Must contain valid characters (a-z, A-Z, 0-9, !@#%^*-_.,?) and spaces." + } + } + } + ], + "containerArgs": [], + "schedulerOptions": [ + { + "name": "TACC Scheduler Profile", + "description": "Scheduler profile for HPC clusters at TACC", + "inputMode": "FIXED", + "arg": "--tapis-profile tacc-apptainer", + "notes": { + "isHidden": true + } + }, + { + "name": "Slurm job name", + "description": "Set the slurm job name to be identical to the Tapis job name.", + "inputMode": "FIXED", + "arg": "--job-name ${JobName}", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [], + "archiveFilter": { + "includes": [], + "excludes": [ + "tapisjob.out" + ], + "includeLaunchFiles": false + } + }, + "fileInputs": [ + { + "name": "Target path to be compressed", + "description": "The directory or file to be compressed.", + "inputMode": "OPTIONAL", + "autoMountLocal": true, + "sourceUrl": null, + "targetPath": "*" + } + ], + "fileInputArrays": [], + "nodeCount": 1, + "coresPerNode": 1, + "memoryMB": 100, + "maxMinutes": 10, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: ALL" + ], + "notes": { + "label": "Compress (Frontera/Lonestar6)", + "hideNodeCountAndCoresPerNode": true, + "icon": "compress", + "category": "Utilities", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} \ No newline at end of file diff --git a/applications/compress/Dockerfile b/applications/compress-frontera/Dockerfile similarity index 100% rename from applications/compress/Dockerfile rename to applications/compress-frontera/Dockerfile diff --git a/applications/compress/README.md b/applications/compress-frontera/README.md similarity index 100% rename from applications/compress/README.md rename to applications/compress-frontera/README.md diff --git a/applications/compress/Singularity b/applications/compress-frontera/Singularity similarity index 100% rename from applications/compress/Singularity rename to applications/compress-frontera/Singularity diff --git a/applications/compress/app.json b/applications/compress-frontera/app.json similarity index 100% rename from applications/compress/app.json rename to applications/compress-frontera/app.json diff --git a/applications/compress/run.sh b/applications/compress-frontera/run.sh similarity index 100% rename from applications/compress/run.sh rename to applications/compress-frontera/run.sh diff --git a/applications/extract-dynamic/app.json b/applications/extract-dynamic/app.json new file mode 100644 index 0000000..9d45d12 --- /dev/null +++ b/applications/extract-dynamic/app.json @@ -0,0 +1,94 @@ +{ + "id": "extract-dynamicexecsystem", + "version": "0.0.1", + "description": "Extract a tar, tar.gz, tgz, gz, or zip file.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://taccaci/extract:latest", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "description": "Extract a tar, tar.gz, tgz, gz, or zip file.", + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}/input", + "execSystemOutputDir": "${JobWorkingDir}/output", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": false, + "isMpi": false, + "mpiCmd": null, + "cmdPrefix": null, + "parameterSet": { + "appArgs": [], + "containerArgs": [], + "schedulerOptions": [ + { + "name": "TACC Scheduler Profile", + "description": "Scheduler profile for HPC clusters at TACC", + "inputMode": "FIXED", + "arg": "--tapis-profile tacc-apptainer", + "notes": { + "isHidden": true + } + }, + { + "name": "Slurm job name", + "description": "Set the slurm job name to be identical to the Tapis job name.", + "inputMode": "FIXED", + "arg": "--job-name ${JobName}", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [], + "archiveFilter": { + "includes": [], + "excludes": [ + "tapisjob.out" + ], + "includeLaunchFiles": false + } + }, + "fileInputs": [ + { + "name": "Input File", + "description": "The archive file to be extracted.", + "inputMode": "REQUIRED", + "autoMountLocal": true, + "sourceUrl": null, + "targetPath": "*" + } + ], + "fileInputArrays": [], + "nodeCount": 1, + "coresPerNode": 1, + "memoryMB": 100, + "maxMinutes": 10, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: ALL" + ], + "notes": { + "label": "Extract Compressed File (Frontera/Lonestar6)", + "hideNodeCountAndCoresPerNode": true, + "icon": "extract", + "category": "Utilities", + "showTargetPath": true, + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/extract/Dockerfile b/applications/extract-frontera/Dockerfile similarity index 100% rename from applications/extract/Dockerfile rename to applications/extract-frontera/Dockerfile diff --git a/applications/extract/Singularity b/applications/extract-frontera/Singularity similarity index 100% rename from applications/extract/Singularity rename to applications/extract-frontera/Singularity diff --git a/applications/extract/app.json b/applications/extract-frontera/app.json similarity index 100% rename from applications/extract/app.json rename to applications/extract-frontera/app.json diff --git a/applications/extract/run.sh b/applications/extract-frontera/run.sh similarity index 100% rename from applications/extract/run.sh rename to applications/extract-frontera/run.sh diff --git a/applications/jupyter-hpc-mpi-dynamic/app.json b/applications/jupyter-hpc-mpi-dynamic/app.json new file mode 100644 index 0000000..77d8fc2 --- /dev/null +++ b/applications/jupyter-hpc-mpi-dynamic/app.json @@ -0,0 +1,102 @@ +{ + "id": "jupyter-hpc-mpi-dynamicexecsystem", + "version": "1.0.1", + "description": "Run an interactive Jupyter Notebook session with ability to launch mpi jobs.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://debian:bullseye-slim", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "description": null, + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}", + "execSystemOutputDir": "${JobWorkingDir}/output", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": true, + "isMpi": false, + "mpiCmd": null, + "cmdPrefix": "source tapisjob.env;source jupyter-notebook-native/run.sh;", + "parameterSet": { + "appArgs": [ + { + "name": "launchParameters", + "arg": "echo 'Job is done.'", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + } + ], + "containerArgs": [], + "schedulerOptions": [ + { + "name": "TACC Scheduler Profile", + "description": "Scheduler profile for HPC clusters at TACC", + "inputMode": "FIXED", + "arg": "--tapis-profile tacc-apptainer", + "notes": { + "isHidden": true + } + }, + { + "name": "TAP Session Substring", + "description": "TAP Functions require the substring 'tap_' and in the slurm job name in order to function.", + "inputMode": "FIXED", + "arg": "--job-name ${JobName}-tap_", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [], + "archiveFilter": { + "includes": [], + "excludes": [], + "includeLaunchFiles": true + } + }, + "fileInputs": [ + { + "name": "Jupyter input files", + "inputMode": "REQUIRED", + "sourceUrl": "tapis://cloud.data/corral/tacc/aci/CEP/applications/v3/jupyter-notebook-native", + "targetPath": "*", + "notes": { + "isHidden": true + } + } + ], + "fileInputArrays": [], + "nodeCount": 1, + "maxMinutes": 120, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: CEP", + "portalName: MISE" + ], + "notes": { + "label": "Jupyter Notebook HPC MPI (Frontera/LoneStar6)", + "helpUrl": "https://jupyter-notebook.readthedocs.io/en/stable/", + "hideNodeCountAndCoresPerNode": false, + "isInteractive": true, + "icon": "jupyter", + "category": "Data Processing", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/jupyter-hpc-mpi/app.json b/applications/jupyter-hpc-mpi-frontera/app.json similarity index 100% rename from applications/jupyter-hpc-mpi/app.json rename to applications/jupyter-hpc-mpi-frontera/app.json diff --git a/applications/jupyter-hpc-mpi/profile.json b/applications/jupyter-hpc-mpi-frontera/profile.json similarity index 100% rename from applications/jupyter-hpc-mpi/profile.json rename to applications/jupyter-hpc-mpi-frontera/profile.json diff --git a/applications/jupyter-hpc-mpi/run.sh b/applications/jupyter-hpc-mpi-frontera/run.sh similarity index 100% rename from applications/jupyter-hpc-mpi/run.sh rename to applications/jupyter-hpc-mpi-frontera/run.sh diff --git a/applications/jupyter-lab-hpc-dynamic/app.json b/applications/jupyter-lab-hpc-dynamic/app.json new file mode 100644 index 0000000..a3d0bed --- /dev/null +++ b/applications/jupyter-lab-hpc-dynamic/app.json @@ -0,0 +1,92 @@ +{ + "id": "jupyter-lab-hpc-dynamicexecsystem", + "version": "1.1.0", + "description": "Run an interactive Jupyter Lab session on an HPC compute node.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://taccaci/jupyter-lab-hpc:1.1.0", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "description": null, + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}", + "execSystemOutputDir": "${JobWorkingDir}/output", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": true, + "isMpi": false, + "mpiCmd": null, + "cmdPrefix": "mkdir $PWD/Work $PWD/Home $PWD/Scratch;", + "parameterSet": { + "appArgs": [], + "containerArgs": [ + { + "name": "Jupyter Mounts", + "description": "Mount for TAP functions and user dirs", + "inputMode": "FIXED", + "arg": "--bind /share,$STOCKYARD:$PWD/Work,$HOME:$PWD/Home,$SCRATCH:$PWD/Scratch", + "notes": { + "isHidden": true + } + } + ], + "schedulerOptions": [ + { + "name": "TACC Scheduler Profile", + "description": "Scheduler profile for HPC clusters at TACC", + "inputMode": "FIXED", + "arg": "--tapis-profile tacc-apptainer", + "notes": { + "isHidden": true + } + }, + { + "name": "TAP Session Substring", + "description": "TAP Functions require the substring 'tap_' and in the slurm job name in order to function.", + "inputMode": "FIXED", + "arg": "--job-name ${JobName}-tap_", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [], + "archiveFilter": { + "includes": [], + "excludes": [], + "includeLaunchFiles": true + } + }, + "fileInputs": [], + "fileInputArrays": [], + "nodeCount": 1, + "maxMinutes": 120, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: ALL" + ], + "notes": { + "label": "Jupyter Lab HPC (Frontera/LoneStar6)", + "helpUrl": "https://jupyterlab.readthedocs.io/en/stable/", + "hideNodeCountAndCoresPerNode": false, + "isInteractive": true, + "icon": "jupyter", + "category": "Data Processing", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/jupyter-lab-hpc/Dockerfile b/applications/jupyter-lab-hpc-frontera/Dockerfile similarity index 100% rename from applications/jupyter-lab-hpc/Dockerfile rename to applications/jupyter-lab-hpc-frontera/Dockerfile diff --git a/applications/jupyter-lab-hpc/Singularity b/applications/jupyter-lab-hpc-frontera/Singularity similarity index 100% rename from applications/jupyter-lab-hpc/Singularity rename to applications/jupyter-lab-hpc-frontera/Singularity diff --git a/applications/jupyter-lab-hpc/app.json b/applications/jupyter-lab-hpc-frontera/app.json similarity index 100% rename from applications/jupyter-lab-hpc/app.json rename to applications/jupyter-lab-hpc-frontera/app.json diff --git a/applications/jupyter-lab-hpc/gpu/app.json b/applications/jupyter-lab-hpc-frontera/gpu/app.json similarity index 100% rename from applications/jupyter-lab-hpc/gpu/app.json rename to applications/jupyter-lab-hpc-frontera/gpu/app.json diff --git a/applications/jupyter-lab-hpc/gpu/cuda.Dockerfile b/applications/jupyter-lab-hpc-frontera/gpu/cuda.Dockerfile similarity index 100% rename from applications/jupyter-lab-hpc/gpu/cuda.Dockerfile rename to applications/jupyter-lab-hpc-frontera/gpu/cuda.Dockerfile diff --git a/applications/jupyter-lab-hpc/run.sh b/applications/jupyter-lab-hpc-frontera/run.sh similarity index 100% rename from applications/jupyter-lab-hpc/run.sh rename to applications/jupyter-lab-hpc-frontera/run.sh diff --git a/applications/opensees-mp/opensees-mp-3.5.0-dynamic/app.json b/applications/opensees-mp/opensees-mp-3.5.0-dynamic/app.json new file mode 100644 index 0000000..cb2439a --- /dev/null +++ b/applications/opensees-mp/opensees-mp-3.5.0-dynamic/app.json @@ -0,0 +1,126 @@ +{ + "id": "opensees-mp-dynamicexecsystem", + "version": "3.5.0", + "description": "OpenSeesMP is an OpenSees interpreter intended for high performance computers for performing finite element simulations with parameteric studies and very large models on parallel machines. OpenSeesMP requires understanding of parallel processing and the capabilities to write parallel scripts.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://debian:bookworm-slim", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}", + "execSystemOutputDir": "${JobWorkingDir}", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": true, + "isMpi": true, + "mpiCmd": "ibrun", + "parameterSet": { + "appArgs": [ + { + "name": "mainProgram", + "arg": "OpenSeesMP", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + }, + { + "name": "TCL Script", + "description": "The filename only of the OpenSees TCL script to execute. This file should reside in the Input Directory specified.", + "arg": "Example.tcl", + "inputMode": "REQUIRED" + } + ], + "containerArgs": [ + { + "name": "TACC Module Mounts", + "description": "Mount the required folders in order for OpenSees TACC modules to function.", + "inputMode": "FIXED", + "arg": "--bind /bin,/etc,/lib,/lib64,/opt,/run,/share,/usr,/var", + "notes": { + "isHidden": true + } + } + ], + "schedulerOptions": [ + { + "name": "OpenSees TACC Scheduler Profile", + "description": "Scheduler profile for TACC OpenSees 3.5.0.", + "inputMode": "FIXED", + "arg": "--tapis-profile OpenSees_3.5.0", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [ + { + "key": "APPEND_PATH", + "value": "$PATH", + "description": "Append host $PATH to Singularity container default $PATH.", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + }, + { + "key": "LD_LIBRARY_PATH", + "value": "$LD_LIBRARY_PATH", + "description": "LD_LIBRARY_PATH to bring in path for loaded modules", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + } + ], + "archiveFilter": { + "includes": [], + "excludes": [], + "includeLaunchFiles": true + } + }, + "fileInputs": [ + { + "name": "TCL Input Directory", + "inputMode": "REQUIRED", + "sourceUrl": "tapis://cloud.data/corral/tacc/aci/CEP/community/opensees-mp/examples/smallmp", + "targetPath": ".", + "description": "TCL input directory that includes the tcl script as well as any other required files. Example input is in tapis://cloud.data/corral/tacc/aci/CEP/community/opensees-mp/examples/smallmp/Example.tcl" + } + ], + "fileInputArrays": [], + "nodeCount": 2, + "coresPerNode": 128, + "memoryMB": 256000, + "maxMinutes": 120, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: UTRC", + "portalName: CEP" + ], + "notes": { + "label": "OpenSeesMP V3.5 (Frontera/LoneStar 6)", + "helpUrl": "https://opensees.berkeley.edu/", + "hideNodeCountAndCoresPerNode": false, + "isInteractive": false, + "icon": null, + "category": "Simulation", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/opensees-mp/opensees-mp-3.5.0/Readme.MD b/applications/opensees-mp/opensees-mp-frontera-3.5.0/Readme.MD similarity index 100% rename from applications/opensees-mp/opensees-mp-3.5.0/Readme.MD rename to applications/opensees-mp/opensees-mp-frontera-3.5.0/Readme.MD diff --git a/applications/opensees-mp/opensees-mp-3.5.0/Singularity b/applications/opensees-mp/opensees-mp-frontera-3.5.0/Singularity similarity index 100% rename from applications/opensees-mp/opensees-mp-3.5.0/Singularity rename to applications/opensees-mp/opensees-mp-frontera-3.5.0/Singularity diff --git a/applications/opensees-mp/opensees-mp-3.5.0/app.json b/applications/opensees-mp/opensees-mp-frontera-3.5.0/app.json similarity index 100% rename from applications/opensees-mp/opensees-mp-3.5.0/app.json rename to applications/opensees-mp/opensees-mp-frontera-3.5.0/app.json diff --git a/applications/opensees-mp/opensees-mp-3.5.0/makes/Makefile.def b/applications/opensees-mp/opensees-mp-frontera-3.5.0/makes/Makefile.def similarity index 100% rename from applications/opensees-mp/opensees-mp-3.5.0/makes/Makefile.def rename to applications/opensees-mp/opensees-mp-frontera-3.5.0/makes/Makefile.def diff --git a/applications/opensees-sp/opensees-sp-3.5.0-dynamic/app.json b/applications/opensees-sp/opensees-sp-3.5.0-dynamic/app.json new file mode 100644 index 0000000..2bdf296 --- /dev/null +++ b/applications/opensees-sp/opensees-sp-3.5.0-dynamic/app.json @@ -0,0 +1,126 @@ +{ + "id": "opensees-sp-dynamicexecsystem", + "version": "3.5.0", + "description": "OpenSeesSP 3.5 is an OpenSees interpreter intended for high performance computers for performing finite element simulations of very large models on parallel machines. OpenSeesSP is easy to use even with limited knowledge about parallel computing. It only requires minimal changes to input scripts to make them consistent with the parallel process logic.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://debian:bookworm-slim", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}", + "execSystemOutputDir": "${JobWorkingDir}", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": true, + "isMpi": true, + "mpiCmd": "ibrun", + "parameterSet": { + "appArgs": [ + { + "name": "mainProgram", + "arg": "OpenSeesSP", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + }, + { + "name": "TCL Script", + "description": "The filename only of the OpenSees TCL script to execute. This file should reside in the Input Directory specified.", + "arg": "Example.tcl", + "inputMode": "REQUIRED" + } + ], + "containerArgs": [ + { + "name": "TACC Module Mounts", + "description": "Mount the required folders in order for OpenSees TACC modules to function.", + "inputMode": "FIXED", + "arg": "--bind /bin,/etc,/lib,/lib64,/opt,/run,/share,/usr,/var", + "notes": { + "isHidden": true + } + } + ], + "schedulerOptions": [ + { + "name": "OpenSees TACC Scheduler Profile", + "description": "Scheduler profile for TACC OpenSees 3.5.0.", + "inputMode": "FIXED", + "arg": "--tapis-profile OpenSees_3.5.0", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [ + { + "key": "APPEND_PATH", + "value": "$PATH", + "description": "Append host $PATH to Singularity container default $PATH.", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + }, + { + "key": "LD_LIBRARY_PATH", + "value": "$LD_LIBRARY_PATH", + "description": "LD_LIBRARY_PATH to bring in path for loaded modules", + "inputMode": "FIXED", + "notes": { + "isHidden": true + } + } + ], + "archiveFilter": { + "includes": [], + "excludes": [], + "includeLaunchFiles": true + } + }, + "fileInputs": [ + { + "name": "TCL Input Directory", + "inputMode": "REQUIRED", + "sourceUrl": "tapis://cloud.data/corral/tacc/aci/CEP/community/opensees-sp/examples/smallsp", + "targetPath": ".", + "description": "TCL input directory that includes the tcl script as well as any other required files. Example input is in tapis://cloud.data/corral/tacc/aci/CEP/community/opensees-sp/examples/smallsp/Example.tcl" + } + ], + "fileInputArrays": [], + "nodeCount": 1, + "coresPerNode": 128, + "memoryMB": 256000, + "maxMinutes": 120, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: UTRC", + "portalName: CEP" + ], + "notes": { + "label": "OpenSeesSP V3.5 (Frontera/LoneStar 6)", + "helpUrl": "https://opensees.berkeley.edu/", + "hideNodeCountAndCoresPerNode": false, + "isInteractive": false, + "icon": null, + "category": "Simulation", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/opensees-sp/opensees-sp-3.5.0/Readme.MD b/applications/opensees-sp/opensees-sp-frontera-3.5.0/Readme.MD similarity index 100% rename from applications/opensees-sp/opensees-sp-3.5.0/Readme.MD rename to applications/opensees-sp/opensees-sp-frontera-3.5.0/Readme.MD diff --git a/applications/opensees-sp/opensees-sp-3.5.0/Singularity b/applications/opensees-sp/opensees-sp-frontera-3.5.0/Singularity similarity index 100% rename from applications/opensees-sp/opensees-sp-3.5.0/Singularity rename to applications/opensees-sp/opensees-sp-frontera-3.5.0/Singularity diff --git a/applications/opensees-sp/opensees-sp-3.5.0/app.json b/applications/opensees-sp/opensees-sp-frontera-3.5.0/app.json similarity index 100% rename from applications/opensees-sp/opensees-sp-3.5.0/app.json rename to applications/opensees-sp/opensees-sp-frontera-3.5.0/app.json diff --git a/applications/opensees-sp/opensees-sp-3.5.0/makes/Makefile.def b/applications/opensees-sp/opensees-sp-frontera-3.5.0/makes/Makefile.def similarity index 100% rename from applications/opensees-sp/opensees-sp-3.5.0/makes/Makefile.def rename to applications/opensees-sp/opensees-sp-frontera-3.5.0/makes/Makefile.def diff --git a/applications/rstudio-dynamic/app.json b/applications/rstudio-dynamic/app.json new file mode 100644 index 0000000..b5da57c --- /dev/null +++ b/applications/rstudio-dynamic/app.json @@ -0,0 +1,123 @@ +{ + "id": "rstudio-dynamicexecsystem", + "version": "4.3", + "description": "Run an interactive RStudio Desktop session on Frontera and Lonestar6.", + "owner": "${apiUserId}", + "enabled": true, + "runtime": "SINGULARITY", + "runtimeVersion": null, + "runtimeOptions": [ + "SINGULARITY_RUN" + ], + "containerImage": "docker://rocker/rstudio:4.3", + "jobType": "BATCH", + "maxJobs": -1, + "maxJobsPerUser": -1, + "strictFileInputs": true, + "jobAttributes": { + "description": "Run an interactive RStudio Desktop session on Frontera and Lonestar6.", + "execSystemConstraints": null, + "execSystemExecDir": "${JobWorkingDir}", + "execSystemInputDir": "${JobWorkingDir}/input", + "execSystemOutputDir": "${JobWorkingDir}/output", + "execSystemLogicalQueue": "development", + "archiveSystemId": "cloud.data", + "archiveSystemDir": "HOST_EVAL($HOME)/tapis-jobs-archive/${JobCreateDate}/${JobName}-${JobUUID}", + "archiveOnAppError": true, + "isMpi": false, + "mpiCmd": null, + "cmdPrefix": "source tapisjob.env; source input/rstudio/wrapper.sh;", + "parameterSet": { + "appArgs": [ + { + "name": "Rstudio apptainer runscript", + "inputMode": "FIXED", + "arg": "/usr/lib/rstudio-server/bin/rserver --www-port 8787 --www-address 127.0.0.1 --auth-none=0 --auth-pam-helper-path=pam-helper --server-user=$(whoami) --auth-stay-signed-in-days=30 --auth-timeout-minutes=0 --rsession-path=/etc/rstudio/rsession.sh", + "notes": { + "isHidden": true + } + } + ], + "containerArgs": [ + { + "name": "tmpfs", + "inputMode": "FIXED", + "arg": "--writable-tmpfs", + "notes": { + "isHidden": true + } + }, + { + "name": "Rstudio container mounts", + "inputMode": "FIXED", + "arg": "--bind ${workdir}/run:/run,${workdir}/tmp:/tmp,${workdir}/database.conf:/etc/rstudio/database.conf,${workdir}/rsession.sh:/etc/rstudio/rsession.sh,${workdir}/rstudio-server:/var/lib/rstudio-server", + "notes": { + "isHidden": true + } + } + ], + "schedulerOptions": [ + { + "name": "TACC Scheduler Profile", + "description": "Scheduler profile for HPC clusters at TACC", + "inputMode": "FIXED", + "arg": "--tapis-profile tacc-apptainer", + "notes": { + "isHidden": true + } + }, + { + "name": "TACC Interactive Session Substrings", + "description": "VNC and DCV sessions require the substrings 'tap_' and '-dcvserver' in the slurm job name in order to function.", + "inputMode": "FIXED", + "arg": "--job-name ${JobName}-dcvserver-tap_", + "notes": { + "isHidden": true + } + } + ], + "envVariables": [], + "archiveFilter": { + "includes": [], + "excludes": [], + "includeLaunchFiles": true + } + }, + "fileInputs": [ + { + "name": "Rstudio input files", + "inputMode": "REQUIRED", + "sourceUrl": "tapis://cloud.data/corral/tacc/aci/CEP/applications/v3/rstudio", + "targetPath": "*", + "notes": { + "isHidden": true + } + } + ], + "fileInputArrays": [], + "nodeCount": 1, + "coresPerNode": 128, + "memoryMB": 256000, + "maxMinutes": 120, + "subscriptions": [], + "tags": [] + }, + "tags": [ + "portalName: Frontera", + "portalName: UTRC", + "portalName: CEP", + "portalName: PTDATAX" + ], + "notes": { + "label": "RStudio (Frontera/Lonestar6)", + "helpUrl": "https://docs.posit.co/ide/user/ide/get-started/", + "hideNodeCountAndCoresPerNode": false, + "isInteractive": true, + "icon": "rstudio", + "category": "Data Processing", + "dynamicExecSystems":[ + "frontera", + "ls6" + ] + } +} diff --git a/applications/rstudio/Dockerfile b/applications/rstudio-frontera/Dockerfile similarity index 100% rename from applications/rstudio/Dockerfile rename to applications/rstudio-frontera/Dockerfile diff --git a/applications/rstudio/app.json b/applications/rstudio-frontera/app.json similarity index 100% rename from applications/rstudio/app.json rename to applications/rstudio-frontera/app.json diff --git a/applications/rstudio/inputs/nginx.default.conf b/applications/rstudio-frontera/inputs/nginx.default.conf similarity index 100% rename from applications/rstudio/inputs/nginx.default.conf rename to applications/rstudio-frontera/inputs/nginx.default.conf diff --git a/applications/rstudio/inputs/wrapper.sh b/applications/rstudio-frontera/inputs/wrapper.sh similarity index 100% rename from applications/rstudio/inputs/wrapper.sh rename to applications/rstudio-frontera/inputs/wrapper.sh diff --git a/applications/rstudio/nginx/Singularity.conf b/applications/rstudio-frontera/nginx/Singularity.conf similarity index 100% rename from applications/rstudio/nginx/Singularity.conf rename to applications/rstudio-frontera/nginx/Singularity.conf diff --git a/applications/rstudio/test.sh b/applications/rstudio-frontera/test.sh similarity index 100% rename from applications/rstudio/test.sh rename to applications/rstudio-frontera/test.sh