[kepler-dev] Building small size kepler distribution?

Christopher Brooks cxh at eecs.berkeley.edu
Mon Oct 26 10:59:29 PDT 2009


Hi Thien,
About invoking Ptolemy, see
http://ptolemy.berkeley.edu/ptolemyII/ptIIfaq.htm#invoking%20Ptolemy%20II?

For deployment, the short answer is to use Web Start and to split things up into smaller
jar files.

Ptolemy jar files are built hierarchically so that the functionality is
split into multiple jar files.  We use different configurations to provide
different sets of actors to the user and to provide different documentation
and models.  For example, the configuration for the Hybrid Systems version
of Ptolemy is in ptII/ptolemy/configs/hyvisual/.  That configuration includes
the CT and FSM domains, but does not include things like the code generator.
In ptII/doc/makefile, we also define a separate set of java classes that upon
which we run javadoc.

In ptII/mk/jnlp.mk, we define the set of jar files used for the different
configurations and then use those jar files to build jnlp files that
are then used by Web Start.  There is an added complication about signing
jar files, but signing jar files can be ignored if you are not
using JNLP.

For Kepler, there is a configuration called ptII/ptolemy/configs/ptinyKepler/.
This configuration is based on the ptiny configuration, which consists
of the common domains, but does not include codegen.  The primary difference
between ptiny and ptinyKepler is that ptinyKepler has Kepler specific branding
and does not include a few demos present in ptiny.

To build the Ptolemy webstart JNLP files, do:
   cd $PTII
   ./configure
   make fast install >& install.out
   make jnlp_all

This should create jar files, sign them and create JNLP files.

The file ptII/vergilPtiny.jnlp file is for the Ptiny version of Ptolemy,
which is close to the portion of Ptolemy that is used by Kepler.
So, you could look at the jar files included in that file or you could
just look at the list below:

ptolemy/actor/gui/jnlp/PtinyApplication.jar
doc/docConfig.jar
lib/diva.jar
lib/kieler.jar
ptolemy/ptsupport.jar
ptolemy/vergil/vergil.jar
ptolemy/domains/domains.jar
ptolemy/actor/parameters/demo/demo.jar
ptolemy/matlab/matlab.jar
ptolemy/matlab/demo/demo.jar
lib/matlab.jar
ptolemy/ptsupport.jar
doc/codeDoc.jar
doc/design/usingVergil/usingVergil.jar
lib/jython.jar
lib/ptcolt.jar
ptolemy/actor/lib/colt/colt.jar
ptolemy/actor/lib/colt/demo/demo.jar
ptolemy/actor/lib/comm/demo/demo.jar
ptolemy/actor/lib/hoc/demo/demo.jar
ptolemy/actor/lib/javasound/demo/demo.jar
ptolemy/actor/lib/jni/demo/demo.jar
ptolemy/actor/lib/python/python.jar
ptolemy/actor/lib/python/demo/demo.jar
ptolemy/actor/lib/security/demo/demo.jar
ptolemy/actor/ptalon/antlr/antlr.jar
ptolemy/actor/ptalon/demo/demo.jar
ptolemy/actor/ptalon/ptalon.jar
ptolemy/domains/ct/demo/demo.jar
ptolemy/domains/ct/doc/doc.jar
ptolemy/domains/fsm/doc/doc.jar
ptolemy/domains/fsm/demo/demo.jar
ptolemy/domains/sdf/demo/demo.jar
ptolemy/domains/sdf/doc/doc.jar
ptolemy/data/type/demo/demo.jar
ptolemy/data/unit/demo/demo.jar
ptolemy/domains/continuous/demo/demo.jar
ptolemy/domains/continuous/doc/doc.jar
ptolemy/domains/ddf/demo/demo.jar
ptolemy/domains/ddf/doc/doc.jar
ptolemy/domains/de/demo/demo.jar
ptolemy/domains/de/doc/doc.jar
ptolemy/domains/hdf/demo/demo.jar
ptolemy/domains/hdf/doc/doc.jar
ptolemy/domains/pn/demo/demo.jar
ptolemy/domains/pn/doc/doc.jar
ptolemy/domains/rendezvous/demo/demo.jar
ptolemy/domains/rendezvous/doc/doc.jar
ptolemy/domains/sr/demo/demo.jar
ptolemy/domains/sr/doc/doc.jar
ptolemy/moml/demo/demo.jar
ptolemy/vergil/kernel/attributes/demo/demo.jar


This comes out to about 35Mb, of which 28Mb is the documentation.
That 28Mb could be further reduced by creating a custom documentation
target in ptII/doc/makefile.  You could further reduce the
size by not including kieler (which is used for layout) and
removing the demos.  If you remove the demos, then what you
distribute should not have links to the demos.

So, that would solve the Ptolemy portion of the size issue.

For Kepler, you could try looking around at what jar files are created
and what jar files are actually used.  You could look at how
the installer is built and see if you can pare things down from
there.  For example, do you need R and the R actors?

_Christopher




Thien Nguyen wrote:
> Hi, I've been making some custom actors in a new suite (created locally) 
> for some workflows in synthetic biology. I'm trying to to find a good 
> way to share these workflows with custom actors easily, because the 
> users will be lab biologists who are not familiar with kepler/command 
> lines. I tried ant package to get a complete jar distribution, but it's 
> very big 600MB+, so it's hard to share. My module is very small 1MB, and 
> I assume most users will only run those workflows, or if they want to 
> modify only use a small part of the actor library. I need help with these:
> . How to reduce the size of the executable distribution. I tried to 
> modify the modules.txt in kepler module and the ptolemy-exclude, but not 
> much.
> . In fact, it's more about how to distribute a module easily, without 
> checking out kepler with the build system. Can I save a workflow/module 
> as a KAR and get it to open and run at a different machine with regular 
> Kepler 1.0? I tried to export the workflow from the menu but it show 
> dependency errors, from the maillist it seems I cannot use Kar export to 
> save a workflow with custom module?
> 
> Thanks
> 
> Thien Nguyen
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Kepler-dev mailing list
> Kepler-dev at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev

-- 
Christopher Brooks (cxh at eecs berkeley edu) University of California
CHESS Executive Director                      US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
ph: 510.643.9841 fax:510.642.2718	      (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 (W-F) 510.655.5480


More information about the Kepler-dev mailing list