| |
|
μ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. |
| Publication ACM/IEEE PADS Workshop'05 |
[PDF] |
| User's Manual |
[PDF] |
| Release Notes |
[PDF] |
| Presentation Slides |
[PDF] |
|
- 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
|
- 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
|
For those impatient, like me:
|
Windows
|
Unix/Linux/MacOSX
|
- get
libsynk-current.zip
- unzip to C:\
- cd C:\libsynk
- Edit Makefile:
In MORECFLAGS=...*,
set -DCOMPOSITETIME=1
- nmake
- get
musik-current.zip
- unzip to C:\
- cd C:\musik
- nmake
- cd musik/EXAMPLES
- .\phold 1 1
|
- get
libsynk-current.tar.Z
- untar to ~
- cd ~/libsynk
- Edit Makefile:
In MORECFLAGS=...*,
set -DCOMPOSITETIME=1
- make
- get
musik-current.tar.Z
- untar to ~
- cd ~/musik
- make
- cd musik/EXAMPLES
- ./phold 1 1
|
Back to top
- 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
On Windows (assuming MS Visual Studio/C++ or equivalent):
|
|
In the line with MORECFLAGS=...*,
set -DCOMPOSITETIME=1. |
|
|
This creates synk.lib. |
|
|
This creates musik.lib and example applications.
|
On Unix/Linux/MacOSX:
|
|
In the line with MORECFLAGS=...*,
set -DCOMPOSITETIME=1.
Also, customize per locale/platform.
E.g., compiler settings (LDLIBS vs. LDFLAGS, etc.).
|
|
|
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
Questions/answers are added over time with feedback.
- 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.
- 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
Back to top
μ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
|