Skip to content
Jeff Overbey edited this page Jul 11, 2016 · 1 revision

TODO

Essential

  • Log in (we can create credentials in advance, if it's easier)
  • Select a project to open (we can create and set up projects on the server in advance)
  • Edit code - cf. http://ace.ajax.org
    • Log if the user is active (editing/scrolling/etc.) or inactive once every 30 seconds/minute (with timestamp)
    • Automatically save the user's code to the server once every 30 seconds/minute
    • Warn (lock editor?) if the connection is lost
  • Compile code, displaying warnings/errors
    • Compile CUDA code
    • Compile OpenACC code
    • Compile basic C code
    • Display warnings/errors from compilation
    • Log that the user compiled the code together with a timestamp and whether errors/warnings produced
    • Save the code so we can view that version
  • Run and display the program's output
    • Log that the user ran the code together with a timestamp, the exit code, and what output was produced

High Priority

  • Put compilations and runs in a queue since we only have one PGCC license and one GPU, and we don't want jobs affecting each other's runtimes
  • Allow the user to view (or revert to?) a previous version of the code
  • OK - We might have the user's code output a SVG image (we can use a fixed filename, like output.svg) -- if the code outputs this file, display the image along with the output
  • NO - For OpenACC projects, provide an option to compile and run /without/ OpenACC enabled (i.e., without -ta=nvidia)

Post-Release Bug Fixes/Feature Additions

  • Allow user to change theme/font size (student suggestion)
  • Add button to download source code as .c/.cu file (student suggestion)
  • Bind key to run? Ctrl+R
  • In addition to "Compile Only", provide something like "Run in cuda-gdb and backtrace" (for debugging segfaults) that executes bash -c "yes | cuda-gdb --quiet --eval-command=run --eval-command=backtrace --eval-command=quit --args /path/to/submit"
  • If we're going to add other Run commands anyway, two profiling commands are also useful: "Run with nvprof (summary)" nvprof --print-gpu-summary /path/to/submit and "Run with nvprof --print-gpu-trace" nvprof --print-gpu-trace /path/to/submit
  • Automatically switch to project after closing the Create dialog
  • Show list of control keys somewhere - Ctrl+L, Ctrl+F (twice to replace), Ctrl+R
  • Code cleanup
  • Integrate refactorings (CLI) into WebCode - put this on a separate branch
Clone this wiki locally