3 Docker universal app web interface
David Anderson edited this page 2024-11-20 00:57:45 -08:00

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.