A Methodology for Bridging the Native and Simulated Executions of Parallel Applications Ali Mohammed Department of Mathematics and Computer Science University of Basel, Switzerland ali.mohammed@unibas.ch Ahmed Eleliemy Department of Mathematics and Computer Science University of Basel, Switzerland ahmed.eleliemy@unibas.ch Florina M. Ciorba Department of Mathematics and Computer Science University of Basel, Switzerland forina.ciorba@unibas.ch ABSTRACT Simulation is considered as the third pillar of science, following experimentation and theory. Bridging the native and simulated executions of parallel applications is needed for attaining trustwor- thiness in simulation results. Yet, bridging the native and simulated executions of parallel applications is challenging. This work pro- poses a methodology for bridging the native and simulated execu- tions of message passing parallel applications on high performance computing (HPC) systems in two steps: Expression of the software characteristics, and representation and verifcation of the hardware characteristics in the simulation. This work exploits the capabilities of the SimGrid [3] simulation toolkit’s interfaces to reduce the efort of bridging the native and simulated executions of a parallel appli- cation on an HPC system. For an application from computer vision, the simulation of its parallel execution using straightforward par- allelization on an HPC cluster approaches the native performance with a minimum relative percentage diference of5.6%. KEYWORDS Native execution, simulated execution, performance, scheduling 1 INTRODUCTION Bridging the native and simulated execution of parallel applica- tions denotes creating a connection between the two scientifc approaches, in the sense that each instance (native or simulated) is representative of the other. If a parameter has a certain efect in native execution, it should have the same efect in the simulated execution. Bridging the native and simulated execution of parallel applications is important as it connects two pillars of science, i.e., experimentation and simulation. Bridging native and simulated exe- cution allows the acceptance of the simulation results with a higher degree of confdence than otherwise. This work proposes a method- ology for bridging the native and simulated execution of parallel applications on high performance computing (HPC) systems. In this work, the parallel spin-image algorithm (PSIA) [5] is con- sidered as the application under study. The PSIA is a parallel version of the spin-image algorithm (SIA) [6]. It converts a 3D object rep- resentation to a set of 2D images considered as shape descriptor for that object. The SIA is used in 3D object recognition, catego- rization, and 3D face recognition [4]. In the PSIA, the generation of spin-images is equally distributed among the available parallel processors, i.e., each processor is assigned a certain number of spin- images to generate. The time to generate a single spin-image is not constant per and among processors. Therefore, dynamic loop scheduling (DLS) techniques are needed to balance the generation of spin-images among the available parallel processors and enhance application performance. An overview of the most efcient DLS techniques is given in [1]. Experimenting with the use of all the available DLS techniques and examining the efects of using each method on the application performance using native execution may not be feasible, due to the following limitations: (1) Application execution time can be very large due to the problem size and (2) It is not feasible to control all the parameters that afect the execution time in native experiments. Simulation can alleviate certain limitations encountered in na- tive experimentation. To enable simulated experimentation, the SimGrid [3] simulation toolkit is used to represent the simulated performance of the PSIA application on an HPC system. SimGrid is a framework to simulate distributed systems with the following user interfaces: MSG, SimDag, and SMPI. The use of SimDag and SMPI in this work is described in Section 2. 2 BRIDGING APPROACH In this work, a methodology for bridging the native and simulated executions of parallel applications onto HPC systems is proposed, which involves two steps: (1) Expression of applications; and (2) The representation and verifcation of computing systems. The advan- tages of the proposed methodology are the reduction of the complex- ity of the representation and verifcation process and the separation of the concerns between software and hardware representation. The separation of concerns leads to the ease of identifying the source of inaccurate simulation results and, hence, places more efort into improving the software and hardware representation. 2.1 Expression of Applications in SimGrid To enable the simulation of the application of interest on the system represented in the platform fle, the application characteris- tics need to be expressed in SimGrid-SimDag or SimGrid-MSG. The SimGrid-SimDag interface has been selected in this work as it has two simple types of tasks that can represent the PSIA application: sequential computation tasks (FLOP) and end to end communica- tion tasks (B). To describe the application in the SimGrid-SimDag interface, the SimGrid-SMPI interface is used to produce a spe- cial type of trace of the application’s simulated execution, i.e., time independent trace (TiT). In a TiT, the size of each computa- tion or communication event is specifed in FLOP or number of communicated elements, respectively. As shown in the frst step in Figure 1, the information from the TiT is used to express the application in the SimGrid-SimDag and obtain the proper values of each computation and communication tasks.