Performance-Aware Resource Management of Multi-Threaded Applications on Many-Core Systems
Daniel Olsen, Iraklis Anagnostopoulos · 2017
Modern computing systems employ a large number of processing elements leaving behind traditional design approaches and architectures. On the software side, this evolution in system architecture has driven rapid changes on the field of application development too, by increasing the usage of highly parallel/multi-threading and demanding applications. Thus, many-core systems raise the challenge of efficient resource management especially in cases where changes occur at run-time with a rapid pace. In this paper, a performance-aware resource management scheme for many-core architectures is presented. Particular, the developed framework takes as input parallel applications and performs an application profiling. Based on that profile information, a thread to core mapping algorithm finds (i) the appropriate number of threads that this application will have in order to maximize the utilization of the system; and (ii) the best mapping for maximizing the performance of the application. Experimental results showed that our mapping framework produces on average 23% and 18% better application turnaround time compared to another state-of-art run-time manager.