Table of Contents
There are various possible interfaces for job submission to BUDA. We could make a Python-based remote API. We (or others) could use this API to integrate it into batch systems.
But for starters, I propose implementing a generic (multi-application) web-based job submission system, using the per-user file sandbox system.
Managing science apps and variants.
First, there's a web interface for managing BUDA science apps This shows you the existing apps, and lets you delete them or create new ones.
For a given science app it shows you the variants (i.e. for different GPU types). It lets you delete them or create new ones. The form for this includes:
- Select (from your file sandbox) a set of 'app files'. This includes:
- a Dockerfile
- a main prog to run in the container
- other files if needed
- info per file: logical name, copy flag
- a plan class name (CPU/GPU)
- list of input files (logical name, copy_file)
- list of output files (logical name)
- cmdline (passed to main prog for all jobs)
Submitting jobs
The form for submitting a batch of jobs:
- batch name (optional)
- select a BUDA science app and variant
- select (from the file sandbox) a zip file of job descriptions. This file has one dir per job:
jobname/
[cmdline]
file1 (logical name)
...
...
This system should manage file immutability. The above filenames are logical and don't need to be unique; e.g. input files for different jobs can have the same name. The system will create unique physical names.