From: tk@dcs.ed.ac.uk (Tommy Kelly)
Subject: Re: Looking for a simulation package.
Reply-To: tk@dcs.ed.ac.uk (Tommy Kelly)
Organization: Laboratory for the Foundations of Computer Science, Edinburgh U
Date: Mon, 12 Oct 1992 14:46:30 GMT

In article <1992Oct12.122408.19420@hubcap.clemson.edu> CHBENE%orion.cpqd.ansp.br@UICVM.UIC.EDU (Benedito A. Cruz) writes:
>
>     Does anybody know a discrete-event simulation package written in
>C++ and how could I get it ?

Sim++	A commercially written package, by a company called JADE.
	Runs on Sun3 Sun4 and transputer networks (distributed version
	for the latter).  Uses virtual time and rollback.
	Easy to learn and use, but sometimes its documentation is scary
	with its we-dont-check-this-but-dont-do-it warnings.
	Also, it provides a restricted C++ - didn't bother me, but
	I'm not a C++ nutcase.
	Telephone (403) 974-0444 for JADE.

CSIM	Another commercial package, this one by MCC in Austin.
	Written by Herb Schwetmann - originally I think for C, but now
	available for C++.  try contacting Schwetmann at MCC at
	hds%com.mcc.snowmass@com.mcc.

Awesime Written by Dirk Grunwald (grunwald@foobar.colorado.edu) - based (I 
	think) on the above CSIM.
	Here is a forwarded forwarded mail I got on it:

Forwarded message:
> Reply-To: grunwald@edu.colorado.cs.foobar
> 
> Here's the canned reply & instructions for picking it up.
> If you use it, lemme know, I'll mark you down & keep you informed of
> bug fixes.
> 
> -----------------------------------------------------------------------------
> I have a C++ library (``Awesime'') that I designed after using Csim for
> a number of years.
> 
> It has: + non-premptive threads and a threaded multiprocessor
> 	environment (on e.g., a Solbourne multiprocessor,
> 	Sequent symmetry or (I would guess) a Sun
> 	multiprocessor).
> 
> 	+ Comes with SpinLocks, SpinBarriers, SpinEvents,
> 	Semaphores, Barriers, Events, Gates, BoundedFifo's and
> 	more.
> 
> 	+ random number functions. Two random bit generators
> 	(fast & good, slow & great) and ways to transform the
> 	random bits into meaning values: NegativeExponental,
> 	Normal, Uniform, Weibull, Poisson, Geometric, etc.
> 
> 	+ Statistics gathering functions. A basic Statistic
> 	class gives min, max, mean, stddev and confidence
> 	intervals. A subclass also provides crude histogramming
> 	functions. Another is used to compute the parameters for
> 	the Piece-Wise Parabolic function fitter algorithm by
> 	Jain et al. Class Quantile uses this to compute
> 	approximate quantile statistics and another computes a
> 	piece-wise approximation to the sampled histogram. You
> 	can then feed that into a Random subclass to generate
> 	samples from the approximated distribution.
> 	
> 	+ A single-CPU process oriented discete event simulation
> 	subsystem that can use all of the previous junk. You get
> 	a Facility (like a Semaphore, but measures utilization,
> 	etc). You also get to delay for time intervals, have
> 	non-process based events, etc.
> 	
> To use Awesime, you need to be using G++, version 2.0 or
> later (versions of AT&T C++ I have access to don't understand
> 'volatile', and I use the G++ ``asm()'' construct to implement context
> switching).
> 
> It runs well on: SPARC, DECstation (MIPS) and i386 (Symmetry).
> It has also been ported in the dim past to: m88k (dg), ns32k (encore).
> (I don't have any of those, so I don't know if it works). Porting is
> usually a simple affair (unless the machine has register windows).
> 
> You can get Awesime via anonymous ftp to ``ftp.cs.colorado.edu'' in
 > ``pub/cs/misc/Awesime''. The users guide is in the same directory.
 > 
 > Awesime has been used for several research projects. We also have a
 > ``cthreads-compatibility'' package based on top of Awesime that lets
 > students do cthreads programs on non-Mach machines. I think Awesime is
 > also being used by a company (Tera) to simulate aspects of their
 > operating system.
 > 
 > The software is covered by the GNU Library Copyleft. I'm happy to
 > answer the occasional question, and I'm also interested in
 > contributions (e.g., a port to the RS/6000 or a premptive mode would
 > be nice, as would integrating the existing non-blocking I/O library I
 > have).
 > 
 > Dirk Grunwald -- Univ. of Colorado at Boulder	  (grunwald@cs.colorado.edu)


voila, c'est tout!

tommy

Newsgroups: comp.parallel,comp.sys.super