JAva-based Multipurpose Environment for Simulation II (JAMES II)

Category Cross-Omics>Agent-Based Modeling/Simulation/Tools

Abstract JAMES II [JAva-based Multipurpose Environment for Simulation II (formerly known as Java-based Agent Modeling Environment for Simulation)] is a flexible, extendible and reusable simulation framework.

It supports any modeling formalism/paradigm as well as simulation methodology. There are already more than 200 extensions supporting several modeling formalisms, simulation algorithms, etc.

What can JAMES II do for you?

JAMES II is a flexible framework which is a sound base for the creation and evaluation of new modeling and simulation technology and applications.

As a plug-in based framework JAMES II provides a maximal degree of reusability, e.g. coarse grained distributed simulation for all sequential simulation algorithms, event queue implementations, optimization algorithms, etc.

The manufacturer's experiences with JAMES II show that it seems to be a framework for simulation technology in general, i.e., up to now the manufacturers have Not been able to identify a technology which cannot be integrated into the system.

Modeling and simulation research -

The reusability within JAMES II eases the creation of new technologies. New developments can be compared to older ones in a fair setup. The endless number of possibilities enables a new level of research due to the number of yet unexplored combinations of evolved technologies.

Experimental Algorithmics -

Algorithms shipping with a modeling and simulation framework as well as those which are described in publications need to be carefully validated and evaluated.

The stable framework of JAMES II, especially the ability to exchange single algorithms through the “Plug-in simulate” schema, forms the base for such validations. This suitability has already been demonstrated in several publications.

Applications -

Often modeling and simulation environments are created for the realization of a single application(s).

This approach has several drawbacks, among them the disappearance of these systems if the applications get out of scope or the authors change their affiliation which e.g. leads to non-reproducible results, as well as the costs for the creation of structures, which can be reused if JAMES II is used, even if a yet unsupported modeling paradigm should be used (e.g. experimental environment).

The advanced simulation technologies realized through JAMES II allow you to focus on model development and they can be facilitated for the execution of detailed experiments [e.g. replications of runs (of a stochastic model) in a coarse grained setup, e.g. on multi-core machines].

New technologies (e.g. new optimization algorithms, event queue implementations) can be, if applicable, reused for any application, most often without any modifications to the existing realizations.

JAMES II Development --

JAMES II (as stated above...) is an open framework for modeling and simulation: it is Not restricted to any paradigm, application, modeling formalism or simulation algorithm.

On developing JAMES II, the successor of JAMES, three (3) different ‘use cases’ have been considered:

1) Research of modeling and simulation paradigms;

2) Use in the context of diverse research projects (modeling and simulation of complex models); and

3) Use for teaching (directly, and as a backend for a tutoring system).

Several requirements can be directly listed as conclusions from the given use cases:

The modular design -

JAMES II consists of four (4) main parts:

1) The graphical user interface (GUI);

2) The experiment layer (supports diverse experiment types, e.g. optimization experiments);

3) The modeling layer (supports diverse modeling formalisms); and

4) The execution layer (supports the simulation of various formalisms, there may be more than one simulation algorithm per formalism).

JAMES II is based on a concept named “Plug’n simulate”. This concept allows the flexible extension of the framework - either with concrete new functionality (e.g. a simulation algorithm) or with new types of functionality.

The implementation --

Currently there are JAMES II plug-ins which provide support for:

Beta-binders models; Cellular Automata; Chemical Reactions Networks; MicMac micro models; DEVS, PDEVS (Parallel DEVS) models as well as several extensions of this formalism [dynamic structures (PdynDEVS), external processes (PepiDEVS)]; and Pi, SpaPi, and AttributedPi models.

The PDEVS and Beta-binders models can be simulated by using a distributed setup or on a single machine. For all others the manufacturer's currently only have sequential algorithms.

Discrete event simulation algorithms usually make intensive use of event queues: plug-ins provide implementations of several event queues including the calendar queue, the mlist, the 2-list, a heap-based one, etc.

JAMES II additionally supports diverse ‘data sinks’ (for simulation data), basic random distributions, basic optimization algorithms, etc.

Note: By the end of 2007 more than 150 plug-ins had already been created for JAMES II. Two years later (October 2009) more than 500 plug-ins had been created, in more than 6,000 classes, comprising more than 450.000 lines of code, in the manufacturer's development repository.

JAMES II Simulation --

Sequential Execution -

There are various approaches for simulating a model on a single computer. Approaches that significantly increase the simulation performance for one kind of model structure might be very disadvantageous for other models. For PDEVS, five (5) parameterisable simulation algorithms exist.

Parallel and Distributed Execution -

For parallel and distributed execution, one has to consider the hardware to be used: Shall the model be simulated on a Grid or a cluster? Which constraints exist? Is it possible to partition the model, and if so, how can this be done?

When executing discrete-event models, one has to further decide on using an optimistic or conservative synchronization protocol.

JAMES II can be easily used for the creation of a distributed simulation system - computers which shall take part in a distributed setup have to run an instance of JAMES II which will be registered at a central master server.

Furthermore, JAMES II allows the integration of diverse mechanisms required in the context of distributed simulations (e.g. partitioning and load balancing).

The first prerequisite with respect to distributed simulation is the partitioning of the model. To partition a model efficiently, one has to consider the peculiarities of the employed modeling formalism, as well as characteristics of the available (hardware) infrastructure (e.g., network speed and topology, computing power). To analyze model structure and infrastructure, additional algorithms are required.

JAMES II allows an automated combination of suitable algorithms for DEVS models, and the integration of other partitioning and analysis methods.

The computational load of the employed processors may vary over simulation runtime. This can be avoided by load balancing techniques. Although load balancing could plainly be regarded as re-partitioning at runtime, additional requirements need to be addressed.

On one hand, a load balancing algorithm has to be particularly efficient, since it is called repeatedly and may slow down the simulation.

On the other hand, the number of migrations that are needed to reduce imbalance should be minimized, which often requires a considerable amount of computing time. Appropriate load balancing algorithms are still under development.

Usage of JAMES II --

JAMES II has already been and is currently being used for diverse applications:

1) The development, evaluation and validation of simulation algorithms and data structures, e.g. EFSim (Efficient and flexible simulators for cell biological systems);

2) Development of new modeling formalisms;

3) Simulation of simulation systems;

4) Software testing;

5) Modeling and simulation of diverse applications -

6) Simulation in a tutoring system.

System Requirements

Contact manufacturer.


Manufacturer Web Site JAMES II

Price Contact manufacturer.

G6G Abstract Number 20630

G6G Manufacturer Number 104230