This page is a work in progress.
The goal of this page is to illustrate how to use Kepler Scientific Workflow System Actors in Triquetrum.
Note that the Kepler Scientific Workflow System is not the same as the Kepler release of Eclipse. In this page, the term Kepler is used to mean the Kepler Scientific Workflow System.
The Kepler Scientific Workflow System has actors that we would like to use in Triquetrum. In this case, we would like to use Kepler's Distributed Data-Parallel (DDP) actors.
For a brief overview of DDP, see:
- Ilkay Altintas, Daniel Crawl, Jianwu Wang. A Distributed Data-Parallel Execution Framework in the Kepler Scientific Workflow System. October 16, 2015. Presented at the Eleventh Biennial Ptolemy Miniconference, Berkeley.
The biggest issue with the integration is that Kepler's classes are not set up for OSGi. Triquetrum/Extending Triquetrum discusses how to set up the packages.
As of June 7, 2016, porting the Kepler ExecutionChoice actor to Triquetrum is partially complete. The ExecutionChoice actor was chosen because it is an arbitrarily complex actor that would not be an easy port. The primary issue is that the ExecutionChoice code uses the Swing-based BasicGraphFrame code that is not present in Triquetrum. The next step would be to get the ptolemy.actor.lib.hoc.Case actor working in Triquetrum because the Case actor has internal models that need to be viewable. Right now, the UI uses ptolemy.vergil.modal.CaseGraphFrame and CaseGraphTableau, which use BasicGraphFrame, which is not present in Triquetrum because Triquetrum does not use the Swing-based viewer. After that, the next step would be to refactor ExecutionChoice to follow the Case example where the UI is in ptolemy.vergil.modal.CaseGraphFrame and CaseGraphTableau.
The current work is in checked in to a repository, see Triquetrum/Kepler Triquetrum Repository.
- See Kepler and Eclipse for how to download and configure Kepler. To get the DDP work, we use the biokepler configuration, so:
mkdir kepler cd kepler svn co https://code.kepler-project.org/code/kepler/trunk/modules/build-area cd build-area/ ant change-to -Dsuite=biokepler ant clean-cache ant eclipse
- Import the Kepler projects into a new workspace that is not the same as where Triquetrum is set up
- Create a Kepler Run configuration an run it:
- project: biokepler
- main class: org.kepler.Kepler
Kepler Fails to start: ProvKAREntryHandler$Factory
If, during startup, we get this message:
java.lang.ClassNotFoundException: org.kepler.kar.handlers.ProvKAREntryHandler$Factory at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
The solution is to select use the biokepler project, not the kepler project.
Run the DDP demo
Kepler will start up. Close the splash window and under Components, double click on DDP and then wordcount-execution-choice.xml. Below is a screen shot of the initial Kepler window:
The wordcount demo has multiple ways of counting words. The default way is to use Unix commands.
Below is a run that counts words using Unix commands:
To use the other ways of counting words, double click on the Word Count actor and change the Choice parameter.
Our first goal is to get Kepler running and count words using Unix commands.
- Triquetrum/Kepler Triquetrum Repository - The current effort to use Kepler actors in Triquetrum. (Start here)
- Triquetrum/Kepler Feature - How the Triquetrum/Kepler Triquetrum Repository was created
- Triquetrum/Kepler Tree Shaking - a first attempt at including all of the classes that were used by Kepler at run time.
- Bug 84: Test out integrating Kepler code into Triquetrum: Use DDP/Hadoop as driver.
- Triquetrum/Extending Triquetrum