μsik

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


μsik



by Kalyan Perumalla
What's New
About
Quick Start
Performance
Download
Install
FAQ
Credits

Latest version: 12 August '05

About

μsik is a micro-kernel for parallel & 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.  Application models are free to adopt any of these techniques, any combination of them or even switch among them dynamically!

μsik uses libSynk in its implementation for distributed time synchronization.  Both run on several platforms, including Windows, Mac and Unix/Linux.

Documentation

Publication ACM/IEEE PADS Workshop'05 [PDF]
User's Manual [PDF]
Release Notes [PDF]
Presentation Slides [PDF]

Current Capabilities (partial list)

  • Lookahead-based conservative and/or optimistic execution
  • Reverse computation-based optimistic execution
  • Checkpointing-based optimistic execution
  • Resilient optimistic execution (zero rollbacks)
    • Constrained out-of-order execution
    • Preemptive event processing
  • Any combinations of the above
  • Automated network-throttled flow control
  • User-level retraction
  • Process-specific limits to optimism
  • Dynamic process addition/deletion
  • Shared and/or distributed memory execution
  • Process-oriented views
  • Can also accommodate the following:
    • Synchronized multicast
    • Optimistic dynamic memory
    • Automated load-balancing

What's New

  • See Release Notes for additional information.
  • Improved performance, bug fixes, etc.
  • MPI support
  • Transparent flow control, for fine-grained optimistic execution and memory-constrained conservative execution
  • True Micro-kernel and micro-process encapsulations
  • Runahead/Resilience support for constrained out-of-order execution
  • Improved memory management with dynamic growth & shrinkage of internal buffers & arrays
  • LBTS now expanded to include tie-breaker accuracy
  • One additional step in configuring libSynk compilation for μsik

 

 

Quick Start

For those impatient, like me:

Windows Unix/Linux/MacOSX
  1. get libsynk-current.zip
  2. unzip to C:\
  3. cd C:\libsynk
  4. Edit Makefile:
    In MORECFLAGS=...*,
    set -DCOMPOSITETIME=1
  5. nmake
     
  6. get musik-current.zip
  7. unzip to C:\
  8. cd C:\musik
  9. nmake
  10. cd musik/EXAMPLES
  11. .\phold 1 1
  1. get libsynk-current.tar.Z
  2. untar to ~
  3. cd ~/libsynk
  4. Edit Makefile:
    In MORECFLAGS=...*,
    set -DCOMPOSITETIME=1
  5. make
     
  6. get musik-current.tar.Z
  7. untar to ~
  8. cd ~/musik
  9. make
  10. cd musik/EXAMPLES
  11. ./phold 1 1

Back to top

Download

  • Please accept the terms and disclaimer before downloading and using the software.
    Downloading implies acceptance.
     
  • Download the most recent version of libSynk from the following:
  • On Windows, unzip libSynk to C:\ (resulting in a C:\libsynk directory).
    On Unix/Linux, untar libSynk to your home directory (resulting in a $HOME/libsynk directory).
     
  • Download the most recent version of μsik from the following:
  • On Windows, unzip it to C:\ (resulting in a C:\musik directory).
    On Unix/Linux, untar it to your home directory (resulting in a $HOME/musik directory).
     
  • The rest of the instructions here assume μsik and libSynk have been extracted to home or C:\. If you extract to a different directory, substitute the paths in the instructions accordingly.

Back to top

Install

On Windows (assuming MS Visual Studio/C++ or equivalent):
  • Edit C:\libsynk\Makefile
In the line with MORECFLAGS=...*,
set -DCOMPOSITETIME=1.
  • cd C:\libsynk
  • nmake
This creates synk.lib.
  • cd C:\musik
  • nmake
This creates musik.lib and example applications.

On Unix/Linux/MacOSX:
  • Edit ~/libsynk/Makefile
In the line with MORECFLAGS=...*,
set -DCOMPOSITETIME=1.
Also, customize per locale/platform.
E.g., compiler settings (LDLIBS vs. LDFLAGS, etc.).
  • cd ~/libsynk
  • make
This creates libsynk.a.
  • Edit ~/musik/Makefile
  • cd ~/musik
  • make
This creates libmusik.a and example applications.

*If you don't see a line with MORECFLAGS=..., you have an older libSynk version, and need to download the latest libSynk version.

Back to top

Frequently Asked Questions

Questions/answers are added over time with feedback.

  1. Q: When μsik is being compiled, a huge number of errors are displayed, starting with something like "request for member 'ts' in 'ts' which is of non-aggregate type 'double'.
    A: With μsik versions dated 14July2004 or later, you must use libSynk version dated 14July2004 or later (in which I added support for composite timestamps).  Ensure that you are using the correct libSynk version.
  2. Q: When my μsik application is compiled, I get an "undefined reference to TM_ZERO" at link time.
    A: Go to your libSynk directory.  Edit libsynk/Makefile and edit the MORECFLAGS line to define COMPOSITETIME=1, and "make clean; make".  Then go back to your application and recompile.

Back to top

Credits

Back to top

Usage Terms and Disclaimer

μsik and associated software is copyright © 2004 by Kalyan Perumalla and the Georgia Tech Research Corporation, Atlanta, Georgia. All Rights Reserved. μsik and associated software can be used only for non-commercial purposes (research and education). Commercial use and/or redistribution requires licensing agreements with the author(s) and the Georgia Tech Research Corporation.  Download and use implies agreement to the terms and conditions.

Permission to use, copy and modify this software and its documentation for any research purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both the copyright notice and this permission notice appear in supporting documentation. The use or inclusion of this software or its documentation in any commercial product or distribution of this software to any other party without specific, written prior permission is prohibited.

THE SOFTWARE IS PROVIDED AS IS AND GEORGIA TECH RESEARCH CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL GEORGIA TECH RESEARCH CORPORATION OR THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Back to top

Back ] Home ] Up ] Next ]
Copyright © Kalyan S. Perumalla.  Last Updated 08/12/2005 12:09 AM -0400.  Disclaimer