The aim of this paper is to describe the simulation framework developed within the "Models Of Networked Analysis at Regional Centers" (MONARC) project as a design and optimisation tool for large scale distributed systems. The goals are to provide a realistic simulation of distributed computing systems, customized for specific physics data processing and to offer a flexible and dynamic environment to evaluate the performance of a range of possible data processing architectures.
An Object Oriented design, which allows an easy and direct mapping of the logical components into the simulation program and provides the interaction mechanism, offers the most flexible, extensible solution for modelling such large-scale systems. This design approach also copes with systems that may scale and change dynamically.
A process-oriented approach for discrete event simulation has been adopted because it is well suited to describe various activities running concurrently, as well the stochastic arrival patterns typical of this class of simulations. Threaded objects or "Active Objects" provide a natural way to map the specific behaviour of distributed data processing (and the required flows of data across the networks) into the simulation program. The program allows realistic modelling of complex data access patterns by multiple concurrent users in large scale computing systems in a wide range of possible architectures.
This simulation program is based on Java2(TM) technology because of the support for the necessary methods and techniques needed to develop an efficient and flexible distributed process-oriented simulation. This includes a convenient set of interactive graphical presentation and analysis tools, which are essential for the development and effective use of the simulation system.
Validation tests of the simulation tool with queuing theory and realistic client-server measurements are presented. A detailed simulation of the CMS High Level Trigger (HLT) production farm is also presented.