Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Triquetrum/Kepler"

(Create the p2.inf file)
(Added Category.)
 
(36 intermediate revisions by one other user not shown)
Line 14: Line 14:
 
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.
 
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.
  
=== Kepler Installation ===
+
== Status ==
 +
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]].
 +
 
 +
== Kepler Installation ==
 
# See [https://kepler-project.org/developers/reference/kepler-and-eclipse Kepler and Eclipse] for how to download and configure Kepler.  To get the DDP work, we use the biokepler configuration, so:
 
# See [https://kepler-project.org/developers/reference/kepler-and-eclipse Kepler and Eclipse] for how to download and configure Kepler.  To get the DDP work, we use the biokepler configuration, so:
 
   mkdir kepler
 
   mkdir kepler
Line 23: Line 28:
 
   ant clean-cache
 
   ant clean-cache
 
   ant eclipse
 
   ant eclipse
# Import the Kepler projects into the same workspace as to where Triquetrum is set up
+
# 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:  
 
# Create a Kepler Run configuration an run it:  
 
* project: biokepler
 
* project: biokepler
 
* main class: org.kepler.Kepler
 
* main class: org.kepler.Kepler
  
==== Kepler Fails to start: ProvKAREntryHandler$Factory ====
+
=== Kepler Fails to start: ProvKAREntryHandler$Factory ===
 
If, during startup, we get this message:
 
If, during startup, we get this message:
  
Line 51: Line 56:
  
 
Our first goal is to get Kepler running and count words using Unix commands.
 
Our first goal is to get Kepler running and count words using Unix commands.
 
== What Kepler classes are necessary? ==
 
The next step is to determine what Kepler classes are necessary.
 
 
The demo primarily uses [http://www.biokepler.org/userguide#execchoice  org.kepler.ddp.actor.ExecutionChoice], which is a composite actor that contains submodels that implement the different ways the actor can be executed.
 
 
 
The -verbose option of the java command will report what classes are loaded. 
 
 
Unfortunately, it seems that adding -verbose to the run configuration in Eclipse does not report the Kepler classes that are loaded, so we use the command line
 
 
To run the model without the UI from the command line
 
 
cd kepler/build_area
 
ant run -Dworkflow=../ddp/workflows/demos/wordcount-execution-choice.xml
 
 
Edit kepler/build-area/src/org/kepler/build/Run.java and insert the following into the runSuite() method:
 
  java.createJvmarg().setLine("-verbose");
 
 
Compile the build system:
 
  ant -f kepler-tasks.xml
 
 
Run the model and save the output to a file:
 
  ant run -v -Dworkflow=../ddp/workflows/demos/wordcount-execution-choice.xml >& /tmp/run.txt
 
 
To see how many org.kepler classes are loaded (the sed command converts any inner classes that have $ in their name to the parent class, so org.kepler.util.sql.Table$IndexType becomes org.kepler.util.sql.Table)
 
grep 'Loaded' /tmp/run.txt | grep org.kepler | awk '{print $3}' | sed 's/\$.*\//' | sort | uniq | wc -l
 
 
The above returns 195 classes.  Not all of these classes will be necessary at runtime when running the model, but the important thing here is to make a guess at what classes are necessary.
 
 
== Creating a new Kepler Bundle ==
 
See [[Triquetrum/Extending_Triquetrum#Creating_an_actor_bundle | Creating an actor bundle]].
 
 
# Create the plug-in,
 
## In Eclipse: File -> New Plug-in Project
 
## In the dialog, set the Project Name: to org.kepler.triquetrum.ddpDemo
 
## Click Finish
 
# Create the p2.inf file (See [[Triquetrum/Extending_Triquetrum#Creating_an_actor_bundle | Creating an actor bundle]])
 
## Open the org.eclipse.triquetrum.workflow.actor.plot project, click on META-INF, highlight the p2.inf file and select copy
 
## In the org.kepler.triquetrum.ddpDemo project click on META-INF and paste
 
## The p2.inf file will be created.
 
 
 
 
  
 
== Resources ==
 
== Resources ==
 +
* [[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.
 
* [https://github.com/eclipse/triquetrum/issues/84 Bug 84: Test out integrating Kepler code into Triquetrum: Use DDP/Hadoop as driver.]
 
* [https://github.com/eclipse/triquetrum/issues/84 Bug 84: Test out integrating Kepler code into Triquetrum: Use DDP/Hadoop as driver.]
 
* [[Triquetrum/Extending Triquetrum]]
 
* [[Triquetrum/Extending Triquetrum]]
 +
 +
[[Category:Triquetrum]]

Latest revision as of 10:23, 8 June 2016

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.

Kepler

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:

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.

Status

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.

Kepler Installation

  1. 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
  1. Import the Kepler projects into a new workspace that is not the same as where Triquetrum is set up
  2. 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:

KeplerMainDDPWordCount.png

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:

KeplerWorkflowSystemLocalExecution.png

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.

Resources

Back to the top