OnDemand 2.x Roadmap: Accessibility Goals


Below is a list of “accessibility goals” for the OnDemand 2.x five year project. The first year’s focus will be on these goals, though other goals may also be addressed:

  1. Improve Job Management
  2. Reduce Administrative Load
  3. Streamlining interface

These are explained in detail below. Please comment if you see something missing that should be included here, or if you think our prioritization is incorrect. In particular Job Management is an area where we have lots of ideas but haven’t yet decided on an approach. I’ll be updating this topic with more detail in the future.

1. Improve Job Management

OnDemand is popular for interactive work, file management and job monitoring, but not for job management. We want to address the limitations of the Job Composer and make job management a first class citizen in OnDemand. There are several approaches we can take:

  1. Extend the Files app.
    • Job Submission: Allow a user to select one or more files and submit them to a scheduler.
    • App “shortcuts”: For example, allow a user to select a .m file and click a “go run MATLAB on this cluster” option. Automatically submits a 1-core, 59-minute job with that MATLAB file as input.
  2. Support “Batch Apps” in Dashboard (analogous to “Interactive Apps”)
    • Batch App (e.g., MATLAB batch app) would allow user to specify hardware, wall time, input file(s) and output location.
  3. Unified Jobs app “My Jobs”
    • Completed jobs (with stats from XDMoD)
    • Running jobs from scheduler (with stats from Ganglia)
    • Queued jobs from scheduler
  4. Job Script IDE – writing a job script is software development!
    • Incorporate version control
    • Syntax highlighting and checking
    • Wizards for hardware configuration and job environment configuration (Eclipse PTP may have examples)
    • Lint to check script for errors
    • Slurm Assist from Sandstone HPC
  5. Incorporate Galaxy or HubZero RAPPTURE for turning jobs into apps
  6. Improve the Job Composer app
    • Group job directories together by “project”
    • Control where job directories are created
    • Control the name of the job directories when you make a copy of a template
    • Extend Job Options web form with all the resource manager options available and allow for site specific customizations
    • Separate between job directories and job executions in the interface

2. Reduce Administrative Load

Installation and configuration and debugging problems in OnDemand are currently difficult. Some ideas include:

  1. Simpler plugin architecture
  2. Centralized configuration
  3. Configuration validation
  4. Test suite to catch common mistakes made when configuring OnDemand.

3. Streamlining interface

Anything that can reduce the number of steps required to accomplish a task. Examples of this include one click launching of interactive apps, showing only links to apps that users use daily, improving the file manager. Many ideas have already been provided in the user survey that we are still working through.

4. Integrate jobs, files and app launching

Jobs, files and app launching are each handled by separate apps silo-ed off from each other. Integrating these together would provide options for streamlining user workflows that involve all three. Examples of this include:

  1. double click a Jupyter notebook to start a Jupyter server with the notebook loaded
  2. utilize a desktop metaphor for launching apps from the Dashboard

5. Integrate IDE

Integrate an IDE for job and app development.



Based on feedback from webinar, these are candidates for adding to the roadmap:

  1. Streamlining Interface
    • support uploading directories in the files app
    • control over opening links in same window/tab vs open in new window/tab

Also, user survey feedback and existing github and discourse feature requests.

I’ll delete this comment once I add it to the topic description above.



Asked about mobile friendly interface. Making the views accessible on mobile devices is something that requires some work but is necessary. An open question remains, what work do you want to do on a mobile device?

Interactive sessions? NoVNC? Just monitor jobs?