Runtime Estimation and Cache Simulation
Project ManagerProf. Dr. Thomas Rauber
This project is concerned with the estimation of the runtime of program fragments. The objective is an automatized estimation of the runtime as it could be used advantageously in parallelizing compilers to assess alternative program fragments. Especially also the automatized assessment of irregular applications is aimed for. Thereby, the investigation of the memory performance constitues a main focus. For this purpose, a probability based method to systematically estimate the number of misses to be expected, is being developed. In order to verify the theoretically obtained estimations, measurements are used. Existing tools measuring the number of misses (WARTS, dinero, PCL) exhibit drawbacks, especially concerning the traceability of the origin of the misses. Particularlay, the association between symbolic program variables and the memory accesses carried out through them is missing. Therefore, traces with continuative logging, such as the propagation of symbolic variable names are generated, which then allow for said association. On the one hand, the debugging information plaited into the binary by the compiler is evaluated. On the other hand, in particular for investigation purposes on own source code, the additionally required information can be gained by substituting elementary data types like DOUBLE, FLOAT, INT and arrays with protocolling data structures. As an alternative to conducting time intensive trace runs, additionally, a hardware solution shall be developed, which, based on a multi-core-DSP, permits both the trace run and the simulation of the whole multi level cache hierarchy in a fraction of the time. Such simulation runs of whole memory hierarchies promise a better estimation of the program runtime and moreover are suited to deriving potential optimizations of the code investigated.