Research Prototypes (updated on 8 November 2001)

Associate Professor Teo Yong Meng

Department of Computer Science, National University of Singapore

3 Science Drive 2, Singapore 117543

email:, phone: (65) 874 2830

This page is under construction.


1.    Modeling and Simulation Libraries

  1. SPaDES/Java Simulation Library

SPaDES/Java is an implementation of the SPaDES (Structured Parallel Discrete-event Simulation) modeling and simulation framework based on the process-oriented modeling paradigm.  A set of modeling primitives allows the simulationist to focus on modeling the problem.  SPaDES/Java supports sequential simulation, and it is portable across all platforms. 

Parallel simulation using the conservative null message synchronization will be supported in the next version. Performance optimizations include carrier-null message, and demand null-message with flushing.  Inter-processor communication is implemented using Java Jini/JavaSpaces.  In addition, performance instrumentation supported includes time and space analysis, i.e., average event parallelism, profile of memory requirement based on that required by the simulation problem, as a result of different event orderings, and the overhead of simulation synchronization.       

  1. SPaDES/C++ Parallel Simulation Library

This is an implementation of SPaDES in C++. An optimistic event synchronization protocol with constrained speculation is used.  The library is available for educational purpose on request but without support.



Ministry of Education (Singapore) research grant R-252-000-020-112 and PSA Corporation research grant R-252-000-020-490.


2.  Performance Improvements of WWW

a.   Cluster-based Web Server Simulator (available soon)

This is a trace-driven simulator written in Java and simulates a dispatcher-based web-server cluster.   The simulator is validated against a web-server test-bed consisting of 24 Pentium PCs, and queuing models.

b.  Generalised Proxy Cache Simulator (available soon)

This is a trace-driven simulator written in Perl.



Fujitsu Computers (Singapore) Pte Ltd research grant R-252-000-063-592 and National University of Singapore research grant R-252-000-063-112.


3.    ALiCE Grid Computing  (slides presented at BioGrid Computing Symposium, 2001)

ALiCE (Adaptive and scalable Internet-based Computing Environment) is a grid middleware.  Java programs that run on ALiCE are supported by our TaskGenerator-ResultCollector programming abstraction.  ALiCE supports sequential and parametric applications to maximize computer throughput.  For parallel applications, ALiCE breaks down large computations into tasks to exploit parallelism and speedup.   ALiCE core mechanism includes job submission, execution and result collections, and load balancing.  It is implemented in Java and Sun’s JavaSpaces for cross-platform portability, extensibility, and scalability.  Contact the author if interested.



Click here for list of publications.