U N D E R   D E V E L O P M E N T

JAva SimuLATION - JalaTion

Papers | Javadoc | Source Code

Welcome to JalaTion, the Java-based system for Simulation, Optimization and Analytics.

This system, coded in Java, will support multi-paradigm simulation modeling including 'tableau', 'event', 'process', 'dynamics', 'dynamics_pde', 'activity' and 'state' oriented models. It is a subproject of the ScalaTion project. Currently much of the funcationality of ScalaTion is missing.

Java is a modern object-oriented language that is well-suited for developing simulation engines. JalaTion will also support optimization and analytics as they nowadays go hand-in-hand with simulation modeling. Some of the algorithms come in both sequential and parallel versions.

The JalaTion 1.1 version works with Java 8 (some minor code changes may be required for Java 7).

Please read the LICENSE file (an MIT style license).


Installation Instructions

Requires: Java 8
Recommended: sbt   (see INSTALL_SBT.html)

1. Download one of the following two files

scalation.tar_1.1.gz
OR
scalation_1.1.zip

2. Untar or unzip the file

$ tar xvfz scalation_1.1.tar.gz
OR
$ unzip scalation_1.1.zip

3. Export the SCALATION_CLASSES environment variable to point at class files

export SCALATION_CLASSES=$HOME/scalation_1.1/target/scala-2.11/classes

Ideally, put the export in one of your dot files (e.g., .profile or .bashrc).

4. To re-build the JalaTion system, type the first command

$ sbt compile

The Simple Build Tool sbt is the easiest way to build JalaTion 1.1.

Source packages are in the src/main/java directory, class files are in the target directory, and documentation files are in the docj directory.

5. Run apps (e.g., for process oriented simulation in Bank.java)

$ jscar apps.process.Bank
OR
$ java -cp $SCALATION_CLASSES apps.process.Bank

The 'jscar' shell script works for Linux, Unix and Mac. Use 'jscar.bat' for Windows.

6. Run src test code (e.g., for Regression in scalation.analytics)

$ jscar scalation.analytics.RegressionTest
OR
$ java -cp $SCALATION_CLASSES jalation.analytics.RegressionTest


To develop using an IDE use for example Eclipse or NetBeans.


Papers/Documentation

  1. John A. Miller, Jun Han and Maria Hybinette, "Using Domain Specific Languages for Modeling and Simulation: JalaTion as a Case Study," Proceedings of the 2010 ACM/IEEE Winter Simulation Conference (WSC'10), Baltimore, Maryland (December 2010) pp. 741-752.

  2. Michael E. Cotterell, John A. Miller, Tom Horton, "Unicode in Domain-Specific Programming Languages for Modeling & Simulation: JalaTion as a Case Study," Arxiv preprint arXiv:1112.175 (December 2011) pp. 1-10.

  3. Michael E. Cotterell, John A. Miller, Jun Han and Tom Horton, "Extending JalaTion, a Domain-Specific Language for Modeling & Simulation, for Simulation Optimization," Proceedings of the AlaSim International Modeling and Simulation Conference & Exhibition (AlaSim'12), Huntsville, Alabama (May 2012) pp. 1-1.

  4. Yung Long Li, "Evaluation of Parallel Implementations of Dense and Sparse Matrices for the JalaTion Library," Technical Report, University of Georgia (December 2012) pp. 1-60.

  5. John A. Miller, Michael E. Cotterell and Stephen J. Buckley, "Supporting a Modeling Continuum in JalaTion: From Predictive Analytics to Simulation Modeling," Proceedings of the 2013 ACM/IEEE Winter Simulation Conference (WSC'13), Washington, DC (December 2013) pp. 1191-1202.

  6. Matthew Saltz, Ayushi Jain, Abhishek Kothari, Arash Fard, John A. Miller, and Lakshmish Ramaswamy, "DualIso: An Algorithm for Subgraph Pattern Matching on Very Large Labeled Graphs," Proceedings of the 3rd IEEE International Congress on Big Data (BigData'14), Anchorage, Alaska (June-July 2014) pp. 498-505.
    Online supplement


Source Packages (doc)

Overall javadoc generated API for JalaTion

Package Description
scalation.analytics A package supporting analytics, including regression, time series analysis and clustering.
scalation.graphalytics A package supporting graph analytics, including shortest path, etc.

Source Packages (src)

Package Description
scalation.analytics A package supporting analytics, including regression, time series analysis and clustering.
scalation.graphalytics A package supporting graph analytics, including shotest path, etc.