Presentation of MOTEUR, a workflow execution engine and its use in the medical domain, Johan Montagnat
The use case : medical domain, brain image processing (threshold, segmentation, classification ...), the execution require several hours and involved large datasets
The workflow execution and the Grid access are done through MOTEUR and DIET (see GWENDIA)
MOTEUR langage is based on Scufl (same as Taverna)
Taverna is nice but efforts are required to integrate the new versions (Taverna 2 is very different from the first version) if you use the Taverna librairies to build an application. Taverna is oriented Web Services but not really grid. MOTEUR is lite and can be easily integrated and maintained. Johan is developing a plugin for Taverna 2 to access to EGEE.
Comparison between MOTEUR and Taverna : execution time divided by 15, MOTEUR better efficiency is due to the optimization of the workflow execution
Important skill of MOTEUR : efficient management of the parallelism in 3 ways (Workflow, data and service), they have worked on the job grouping (due to the latency of grids it is very important to group the jobs which couldn't be executed in parallel.
GAS, Generic Application Server Wrapper, different ways to wrap
Legacy application can be wrapped to be used by MOTEUR, in the future, a service repository will be create in the medical domain (registration of new services (with a Web page form for the automatic creation of a wrapping file), use of the registered services in the design of workflows, etc.)
Explanation of the optimization methods used in MOTEUR
They have added a simulation functionality, it runs the workflow with random values before the real execution, it can detect different problems like bad data types, etc., next step should the introduction of more semantics (through an ontology) to increase the validation
Use of the job grouping
Remark : not easy to retrieve an error on EGEE
Big Brother grid monitoring software : nice tool, easy to use
Submission politics : same as for grids, n tries
MOTEUR is able to manage the submission of a large number of jobs
MOTEUR can be downloaded (see end of the resume for some comments as a feedback of the installation), the source is available, development team is small and best effort is applied for the new developments
Several questions during the presentation.
Demo of MOTEUR, Johan Montagnat
Demo of MOTEUR and preview demo of the last version which is not yet published
How to create a workflow, how to wrap existing tools, execution and view of the progression, results, etc.
...
Discussion
Long discussion around the question : script or integrated tools for workflows (which solution for students, etc..)
Use of a Grid or of a local cluster : the use of a grid in not always the best solution (delay before the real execution, use of grid technologies is not even easy for a lambda user, ...)
Integrated tools encourage the reuse of existing algorithms
etc.
Next step
Use of MOTEUR for astronomical use cases, study how to make an interaction between AIDA and MOTEUR (Eric and Andre with a feedback on VO France Wiki and during the next IVOA meeting in Strasbourg (May09))
Interaction with Johan (perhaps time for short discussions during next EGEE user forum in Catane (March09))
Feedback from MOTEUR installation
java 1.5 compiler and virtual machine (1.6 also works)
axis 1.4 for Web services invocations (not necessary to install Tomcat)
compilation or direct use of the binary it is possible to use Si on a des soucis de compil on peu prendre les binaires
graphviz for graphical visualization of the workflow evolution (available in debian/ubuntu packages)
Additional Web-Services require gSOAP and the DIET interface requires DIET.
Depending on the final use it is not necessary to install DIET if you want to use EGEE (gLite) or if you want just to execute local applications (shell, ...)
The last version of MOTEUR requires to patch axis 1.4 sources. You can apply this patch before compiling axis or replace the axis.jar archive by this patched archive (axis.jar is in ...l/axis-1_4/lib of the implementation)
The invocation of Beanshells requires also to download the corresponding jar from http://beanshell.org/.
Also important : add the jars in the Java CLASSPATH (example : export CLASSPATH="/usr/local/axis-1_4/lib/axis-ant.jar:/usr/local/axis-1_4/lib/axis.jar:/usr/local/axis-1_4/lib/commons-discovery-0.2.jar:/usr/local/axis-1_4/lib/commons-logging-1.0.4.jar:/usr/local/axis-1_4/lib/jaxrpc.jar:/usr/local/axis-1_4/lib/log4j-1.2.8.jar:/usr/local/axis-1_4/lib/saaj.jar:/usr/local/axis-1_4/lib/wsdl4j-1.5.1.jar:/usr/local/beanshell/bsh-2.0b4.jar" and export MOTEUR=/usr/local/moteur-090112 and export CLASSPATH=${CLASSPATH}:${MOTEUR}