A Runtime Profiler for Polymorphic Computing Platforms

More Info
expand_more

Abstract

Reconfigurable systems map the computational intensive parts of the code in hardware while less computational intensive parts are executed on general purpose processor(s), thus achieving faster execution than systems with only general purpose processor(s). If multitasking operating systems are used on such systems, a runtime system is required to perform resource management of the reconfigurable hardware, as multiple threads might be competing for the reconfigurable hardware at the same time. Such a runtime system needs to know the current configuration and load of the system to properly allocate the reconfigurable hardware. A runtime profiler is an important tool in this regard, as it can assist the runtime system by providing vital statistics about programs running on the system. Since the runtime profiler has to run in parallel with the actual code, it must be very lightweight and therefore very efficient data structures must be used to store the collected statistics. In this thesis, we present the design and implementation of such a runtime profiler. Empirical evaluation has shown that for most applications, our profiler has an overhead of less than 1.5\% of the total execution time. Moreover, the information generated by the profiler is almost as accurate as that of popular design time profiler GProf.