Carleton University
Technical Report TR-192
May 1991
PARASOL: A Simulator for Distributed and/or Parallel Systems
Abstract
This paper describes the kernel of a distributed/parallel system simulator/emulator which provides the user with “fine grained” control over system components including the hardware, the system software, and the application software architectures. The PARASOL system is truly an umbrella system in that it is equally suitable for performance simulation studies, with various degrees of model abstraction, for implementing and testing distributed/parallel algorithms, and for software prototyping. The kernel provides features for defining: heterogeneous network topologies of arbitrary complexity; dynamic task structures with a variety of management tools including task migration; interprocess communication via Mach-like primitives using communication ports; and spinlocks for low-level task synchronization. For those who are interested in performance simulations, PARASOL also provides the customary simulation tools for random variate generation and for statistics collection. Finally, PARASOL includes a monitor/debugging facility for monitoring and/or debugging user applications. PARASOL may be viewed as both “process-based” and “object-based”. Its programming paradigm requires users to define PARASOL tasks, typically written in C. These together with built-in PARASOL entities are used to construct system models. The PARASOL kernel is highly portable and will run on virtually any system supporting simple, single-threaded applications written in C.