JiST / SWANS
Java in Simulation Time / Scalable Wireless Ad hoc Network Simulator
Introduction to JiST
JiST is a high-performance discrete event simulation engine that runs over
a standard Java virtual machine. It is a prototype of a new general-purpose
approach to building discrete event simulators, called virtual
machine-based simulation, that unifies the traditional systems and
language-based simulator designs. The resulting simulation platform is
surprisingly efficient. It out-performs existing highly optimized simulation
runtimes both in time and memory consumption. For example, JiST has twice
the raw event throughput of the highly optimized, C-based Parsec engine, and supports
process-oriented simulation using a fraction of the memory.
The JiST approach is also inherently flexible, capable of transparently
performing important cross-cutting program transformations and optimizations.
This transparency is a key benefit: simulation code that runs on JiST need not
be written in a domain-specific language invented specifically for writing
simulations, nor need it be littered with special-purpose system calls and
call-backs to support runtime simulation functionality. Instead, JiST converts
an existing virtual machine into a simulation platform, by embedding
simulation time semantics at the byte-code level. Thus, JiST simulations are
written in Java, compiled using a regular Java compiler, and run over a
standard, unmodified virtual machine.
The following tables list some JiST time and space micro-benchmark
results. For a detailed explanation and for further information, please refer
to the JiST user guide and other online documentation.
5 million events
10K node sim.
Introduction to SWANS
SWANS is a scalable wireless network simulator built atop the JiST
platform. It was created primarily because existing network simulation tools
are not sufficient for current research needs, and its performance serves as a
validation of the virtual machine-based approach to simulator construction.
SWANS is organized as independent software components that can be composed to
form complete wireless network or sensor network configurations. Its
capabilities are similar to ns2 and
GloMoSim, but is able
to simulate much larger networks. SWANS leverages the JiST design to acheive
high simulation throughput, save memory, and run standard Java network
applications over simulated networks. In addition, SWANS implements a data
structure, called hierarchical binning, for efficient computation of
The following table lists some SWANS time and space macro-benchmark
results running simulations of a beaconing node discovery protocol. SWANS can
simulate networks that are one or two order of magnitude larger than what is
possible with GloMoSim and ns2, respectively, using the same amount of time
and memory, and at the same level of detail. SWANS simulates a million node
network on a 2.0 GHz uni-processor with 2 GB of RAM. For further
information and explanations, please refer to the SWANS user guide and other online documentation.
March 2005 - JiST/SWANS v1.0.6 released: refer to CHANGES in distribution.
February 2005 - JiST/SWANS v1.0.5 released: refer to CHANGES in distribution.
November 2004 - JiST/SWANS v1.0.2 released: small fixes and improvements.
September 2004 - JiST/SWANS v1.0.1 released, more documents online.