In order to make it easier to interact with the queue manager on Karst, we are creating a series of graphical user interfaces (GUI's) that collect information from a user and submit specific types of image processing jobs to the IU clusters. These GUI's are created using a toolkit called rappture that is being developed as part of the NanoHub project (based at Purdue University).
The rappture (Rapid APPlication infrastrucTURE) toolkit can create complex GUI's using a flexible description encoded in rather simple extensible markup language (XML). The intent of rappture as originally developed by the Nanohub group was to have the GUI spawn a computer simulation of various nano-science related problems and data (e.g., carbon nanotube structures, band gaps, various nano-electronics, etc.) and to return results to the GUI very quickly. The overall design plan for rappture was that the GUI should be able to launch any sort of computer program that could be run from a unix/linux command line, and part of the internal design of rappture is that it can easily interact with both programming languages such as Fortran, C and C++ and with scripting languages such as Perl, Python, Matlab, Octave and Tcl.
The "use model" for rappture is that the user creates a specific application GUI by running the rappture program in a directory that contains a particular XML-based GUI descriptor. The user supplies information to the GUI using a variety of inputs (text boxes, drop-down selections, check boxes, etc.) and starts a simulation by pressing a large button labeled "Simulate." When the job finishes, output of many types is returned to the GUI and displayed in various ways (log files, 2d and 3d graphs, images, structure viewers, etc.). Demonstrations of what running a rappture GUI looks like can be found on the NanoHub website in their Animations section.
We have co-opted the overall design of rappture so that the "Simulate" button in our rappture GUI's starts a Python script that both writes out a job script (containing information for the queue manager on Karst and also the actual image processing commands) and then submits the job script to the queue. The information returned to the GUI is simply the success (or failure) of submitting a job to the queue manager.