Overview

This is a description of the prototype for the OpenKnee SimTK web interface and files required to allow users to submit a simulation to a cloud computing server and retrieve the results from that simulation.


Simulation Files

GENERAL FILE DESCRIPTIONS

LEGEND: * = wildcard = any string, <*> = variable string or argument, [*] = optional argument(s)

submit_simulation.py

febio*

<model>.feb

modify_<model>.py

modify_<model>.cfg

EXAMPLE FILES

Example files to allow development of the prototype for the web user interface and submission of simulations are as follows:

These files are located in the SimTK SVN repository at:


Web Interface

JOB SUBMISSION INTERFACE DESCRIPTION

Select server

Select FEBio Version

Select model

Modify model?

Configuration file name

Configuration file text

User email address

JOB SUBMISSION INTERFACE LAYOUT

A visual representation of the user interface including the core components described above is shown below. Note that optional features that aren't immediately necessary, but may be useful in the future, are shown in red.

CloudComputingPrototypeGUI.png

ADMIN INTERFACE DESCRIPTION

Project administrators should have a means for updating the user interface, e.g., to add new model files to the drop-down list, to add new fields to specify workflow tasks such as post-processing (future item). They may also need to update the results retrieval interface, depending on how general this is.

-- craigbennetts 2013-12-18 20:10:55 A proposed solution could be to provide the administrator access to a page that is essentially the same as the "JOB SUBMISSION INTERFACE LAYOUT" (refer to figure above) but which has an additional button next to the drop-down model menu (shown in green in the figure above; => green = admin components of GUI) for the administrator to select a model file from somewhere the repository and add it to the list in the drop down menu. If this proposed solution is not easy or feasible, any other solution is fine.

It may also be necessary to allow the administrator to select the associated modify_<model>.cfg file (if there may be more than one associated with the <model>.feb), or it could be associated by default, if there is a fixed filenaming convention between <model>.feb and modify_<model>.cfg (and possibly modify_<model>.py). Therefore, there could be another admin "add" button associated with the modify_<model>.cfg file (and possibly another field and "add" button for modify_<model>.py if there may be more than one assoicated with the <model>.feb file).

RESULTS RETRIEVAL INTERFACE DESCRIPTION

Users will receive an email when their results are ready. They can then use a Web-based interface to retrieve their results. Considerations: How long will results be available? Need to set a time limit on this.

-- craigbennetts 2013-12-18 20:10:55 I do not have a clear idea of how the associated GUI for results retrieval should be designed. It will most likely be easier for whoever who is familar with and going to implement the web interface to determine what is best means of achieving this. This will be dependent on where files will be stored after the simulation has completed


Procedure to Run Simulation

1. User Selections on Web Interface

In order to submit a simulation through the web interface, a user should be logged in to SimTK. This will provide access to the user information, e.g. email address, to notify them when their simulation is complete and available for download.

User will make selections on web interface as described above.

2. Transfer Files to Cloud Server

Transfer the required default and user selected/specified files into the same folder (for example) on the cloud server:

3. Run Simulation on Cloud Server

Depending on the selected/specified set of input files, there are 2 options to submit the simulation on the cloud server:

If "Modify Model?" = No, the usage and input arguments are:

Else, if "Modify Model?" = Yes, the usage and input arguments are:

4. Retrieve Results from Cloud Server

Once the simulation has finished, the user should be notified by email, and the newly created files should be returned to the user somehow. The set of files to return to the user depends on whether the original model was modified or not.

If "Modify Model?" = No:

Else, if "Modify Model?" = Yes:


Backend Design Considerations

1. How much time/CPU cycles needed for an average job?

For test cases, on individual PC, it took 13 minutes. Full knee joint runs hours, requiring some 18GB memory.

2. Software installation

a. Dependencies: With FEBio, everything is bundled together, including required libraries.

b. Licensing: ??

c. Maintenance: How to track that the required version(s) of the software are provided? Is this something the infrastructure could arrange so the project admin could be responsible for having the proper version installed?

3. Security to ensure that uploaded files (including those modified by users) are legitimate and will not break the system