Software

Home
About Me
Research
Projects
Academics
Teaching
Publications
Software
Contests
Personal
Site Map


Below are some of the software packages I developed (or co-developed where noted) in my research work and projects.  Most of them are open-source or source-available, free for non-commercial/research use.

Packages are listed in, roughly, reverse chronological order of their development.

Package Description Impact Link
μsik Novel, unifying PDES kernel, combining Time Warp, conservative, state-saving, reverse-computation, etc. Being used in a range of applications, including plasma physics & neurological simulations »
libSynk High-performance library for scalable time-synchronized communication Employed by most parallel network simulators, including pdns, GTNetS & DaSSF; scales to more than 1500 processors »
RCC Reverse C Compiler -- takes C functions as input and produces their equivalent forward+reverse pairs Among the first of its kind for automated reversal of general high-level language programs »
Veil Novel network emulation system, to route real application traffic over simulated networks; works with pdns Affords higher fidelity than other emulators; tested with Netscape, ssh2, and other popular applications »
FDK (Co-author) High-performance implementation of a subset of the DoD High Level Architecture Runtime Infrastructure One of the first efficient HLA RTI implementations; well-known in DoD HLA community; among the few source-available »
PARINO Highly flexible, scalable framework for parallel / distributed, branch-and-cut Mixed Integer Programming; incorporates novel cut management Well cited in parallel MIP literature; being evaluated for use on supercomputers »
TeD Network modeling language; compiler & runtime for automated Time Warp-based simulation Pioneering parallel network modeling system; widely distributed; precursor to state-of-the-art packages such as DaSSF »
Jane Client/server-based control for remote experiments Used for several remote demonstrations of experiment scenarios with combinations of pdns, GTNetS, FDK, Qualnet, Opnet, etc. »
GTW++ C++ API for GTW Time Warp system   »
PNNI Comprehensive models of ATM PNNI protocols Helped analyze complex routing strategies, robustness, etc. of PNNI standards »
dbpvm Debugging environment for PVM Among the very first debugging environments developed for PVM »

μsik

μsik is a micro-kernel for parallel and distributed simulation.  It is a culmination of my decade-long experience in developing high-performance systems for parallel/distributed discrete event simulation, encompassing numerous techniques including a combination of conservative synchronization, optimistic synchronization (both state-saving and reverse computation), and others such as aggregate event processing.  Application models are free to adopt any of these techniques, any combination of them or even switch among them dynamically!  μsik uses libSynk for distributed time synchronization.

See the μsik homepage for additional information.

libSynk

libSynk is a small, portable synchronization library that runs on Windows, Mac & Unix/Linux platforms.  It includes automatic routing software that seamlessly & transparently routes messages across shared memory, Myrinet, LAN (TCP) and WAN (TCP).  It also includes easily reconfigurable software for asynchronous distributed reduction, and a virtual time synchronization module built using asynchronous distributed reductions.  libSynk was developed due to lack of equivalent software that seamlessly and efficiently works across many heterogeneous sub-networks -- I found existing messaging implementations such as PVM and MPI either hard to extend or too complex to modify.  libSynk is compatible with FDK applications (see FDK below).

See the libSynk homepage for additional information.

NMS-ACE

See the NMS-ACE homepage for information on this package.

PARINO

PARINO is a parallel branch-and-cut Mixed Integer Program solver, incorporating novel distributed cut management. I developed it in collaboration with Martin Savelsbergh of GT ISyE in 1995-997. PARINO solves all problems of the Mixed Integer Programming Library (MIPLIB) in parallel, with significant speedup. It is written in C++, is portable across multiple architectures (e.g. IBM-SP2, DEC-Alpha network) and messaging platforms, and is extensible through an object-oriented finite state machine framework.

See the PARINO technical report for additional information.

RCC

Programs generally are compiled to execute only forwards, but not in reverse.  RCC is a compiler that can be used to transform C programs to execute forwards as well as backwards.  It is a source-to-source compiler that takes any set of C functions and generates the forward and backward executing versions of each function.

See the RCC homepage for additional information.

Veil

Veil is a novel approach to network emulation in which real distributed applications can be made to communicate over simulated networks.  It consists of a system library for capturing, synchronizing and rerouting network data from unmodified distributed applications over a synthetic/virtual network.  Among Veil's unique characteristics are: (a) it captures data from the application at the highest layer, even before they are converted to packets (b) it controls time advances to make the communication behavior highly repeatable (c) it doesn't require root/administrator access.

See the Veil homepage for additional information.

FDK

The FDK is a software library kit for developing federated distributed simulations.  The underlying core of FDK was written by me.  The core includes: messaging (FM), distributed reductions (RM), time management (TM), and session management (SESSION).  I have also made extensive performance improvements, most of which have been published in conference publications.

I made the first public release of the FDK in 1998, and maintained it for several years. FDK presently has several users worldwide.

See the FDK homepage for additional information.  See also libSynk above.

TeD

TeD is a scalable simulation system, which includes a language definition, a compiler, and simulation runtime.  Several users worldwide have successfully used TeD to model and simulate large-scale telecommunication network models.  I developed the TeD system from scratch in 1996 in response to the new needs of scalability in network modeling and simulation.  The TeD system work is one my most successful projects.

The TeD project spawned off other closely related research by our TeD collaborators, including the following:

  • Reverse computation-based optimistic synchronization, in the GTW system at Georgia Tech and the ROSS system at RPI
  • Conservative synchronization for large-scale network models, in the DaSSF system (Nops, earlier) at Dartmouth College
  • TeD-like Java library for network models, in the SSF system at Renesys.

See the TeD homepage for additional information.

Jane

Jane is a Java-based client-server system for remotely initiating and controlling any distributed application across the Internet.

See the Jane homepage for additional information.

GTW/GTW++

See the GTW homepage for additional information.

PNNI Models

As demonstration of TeD capabilities, I developed TeD models of the ATM Forum's PNNI protocol standard, which is one of the most complex QoS signaling protocols devised to date.  The biggest challenge was in demonstrating that (a) it is possible to develop complex, large-scale, rollback-based models, and (b) optimistic parallel execution (with incremental state saving techniques) can in fact work with low overhead in large-scale experiments.  On large network sizes, I demonstrated near-linear parallel execution speedup using optimistic synchronization.

See the PNNI Model homepage for additional information.

dbpvm

dbpvm is a debugging environment and Motif-based graphical interface (DBVPM) for Parallel Virtual Machine (PVM). I developed dbpvm as part of my Master's thesis in 1993. It has been distributed to many institutions worldwide.

See the dbpvm release directory for additional information.

Back ] Home ] Next ]
Copyright © Kalyan S. Perumalla.  Last Updated 01/23/2005 12:46 PM -0500.  Disclaimer