Multicore processors are the dominant paradigm in mainstream computing for the present and foreseeable future. Current operating system schedulers on multicore systems co-schedule applications on cores at random. This often exacerbates issues such as cache contention, leading to a performance decrease. Optimally scheduling applications to take advantage of multicore characteristics remains a diﬃcult and open problem. In this thesis, I advocate a method of optimized scheduling on multicore systems that takes advantage of the caching attributes of applications. My scheduler is a user-level process that co-schedules applications based on cache metrics obtained from hardware performance counters. This phase-aware scheduler is able to eﬀectively co-schedule two pairs of applications, extracting up to a 100% of all possible improvement in some workloads. Additionally,individual application performance gains of up to 13% are observed in some applications in co-schedules of two pairs.
Copyright is held by the author.
Member of collection