Submitter
The submitter is responsible for actually submitting the workunit executable(s).

Registration

Navigate to Admin / Application Data / Submitters and click on "Create Submitter". Select the submitter executable, modify the parameter setting and click on "Save".

Programflow of a Submitter

  1. all executables are executed with the commandlineoption -j followed by the externaljobid
  2. read the externaljob and check if the action is SUBMIT: If not, this is not a job for the submitter
  3. set status to "running"
  4. read cliententityclassname (submitter usually work with workunit)
  5. read cliententityid
  6. get the entity which is referenced by cliententityclassname (usually "workunit") and cliententityid
  7. parse the id(s) of the workunitexecutable(s) (can be more than one!)
  8. get the executables referenced by the workunitexecutable id(s) from B-Fabric (SOAP)
    • decode them and prepare them for submission (put them on the filesystem)
  9. read the parameters of context SUBMITTER from B-Fabric (SOAP)
    • go via the parameter endpoint and search for the parameters of the workunit (id) with context "SUBMITTER"
    • or get all parameter via the ids from the workunit and use only the ones with context "SUBMITTER"
  10. get the externaljobs of the executable from B-Fabric (SOAP)
    • use endpoint externaljob with executableid (workunitexecutable have only one externaljob referenced)
    • or get from endpoint externaljob all with "cliententityclassname" "Workunit" and "cliententityid" of the workunit.
  11. (Execution) submit the executables and set the external job of the executable to status "running"
    • if the submit needs options, use the parameters of context "SUBMITTER"
  12. tell the externaljob (B-Fabric SOAP) what you have done (logthis)
    • the status of the externaljob can be set to any value and can be used to give feedback
    • only status "done" and "failed" have a meaning for B-Fabric to set status of the Workunit.
  13. on execution finish, update the status of the corresponding externaljob to "done" or "failed" depending on the exit code.
  14. decide weather the submitter ran successfully or not and set the submitters externaljob to "failed" or "done".

Remarks

As the submitter is responsible for execution on different platforms, B-Fabric will have several different submitters installed.
Examples:
  • execution via Gridengine
  • execution on specific host (e.g. via ssh)
  • execution on Amazon Nodes
All of them mainly differ in the "execution" step. All the rest is usually the same.
We try to build a library, package or similar to ease the creation of a submitter.

Visual

Image