Cluster Comput DOI 10.1007/s10586-009-0086-y Full-system simulation of distributed memory multicomputers Fco. Javier Ridruejo · Jose Miguel-Alonso · Javier Navaridas Received: 8 October 2008 / Accepted: 8 March 2009 © Springer Science+Business Media, LLC 2009 Abstract In this paper we discuss environments for the full- system simulation of multicomputers. These environments are composed of a large collection of modules that simulate the compute nodes and the network, plus additional link- ing elements that perform communication and synchroniza- tion. We present our own environment, in which we integrate Simics with INSEE. We reuse as many Simics modules as possible to reduce the effort of hardware modeling, and also to simulate standard machines running unmodified operat- ing systems. This way we avoid the error-prone effort of de- veloping drivers and libraries. The environment we propose in this paper enables us to show some of the difficulties we found when integrating diverse tools, and how we were able to overcome them. Furthermore we show some important details to have into account in order to do a valid full-system simulation of multicomputers, mostly related with synchro- nization and timing. Thus, a trade-off has to be found be- tween simulation speed and accuracy of results. Keywords Full-system simulation · Interconnection networks · Multicomputers · Clusters F.J. Ridruejo · J. Miguel-Alonso () · J. Navaridas Dep. of Computer Architecture and Technology, The University of the Basque Country, P. Manuel de Lardizabal, 1, 20018 Donostia-San Sebastian, Spain e-mail: j.miguel@ehu.es F.J. Ridruejo e-mail: franciscojavier.ridruejo@ehu.es J. Navaridas e-mail: javier.navaridas@ehu.es 1 Introduction Supercomputing is a very valuable resource which is con- tinuously growing in importance in business and science. Current scientific studies rely on analysis and modeling of different natural phenomena that require a huge amount of computing power, which is not attainable using regular off- the-shelf computers. For example, physicists, chemists or pharmaceutical researchers simulate, for different purposes, interactions between large numbers of molecules. Likewise, in the business context, corporations demand large amounts of computing power in order to use data mining software over their huge data bases, with the objective of extracting knowledge from raw data, and to use that knowledge to their advantage. Obtaining patterns of consumer habits, boosting sales, optimizing costs and profits, estimating stocks or de- tecting fraudulent behavior are just a few interesting appli- cation domains. At any rate, in both contexts, the required computing power is only limited by the available resources. In general, if available computing resources are doubled the number of runs, the grain-size (whichever this means in the particular application context), the size of the datasets or whatever other parameter that affects execution time will be increased in order to fully use the new resources. In other words, the magnitude of the experiments is scaled up to the available resources. This means that there is a permanent demand of high-performance computers able to cope with these challenging workloads. A supercomputer is not only a piece of hardware. It is actually a multipart system that integrates a large collection of hardware and software elements. Therefore, the design of a supercomputer is a complex task that comprises the selec- tion and design of multiple components, such as compute el- ements, storage, interconnection network, access elements,