

In recent years, the cost for power consumption in HPC systems has become a relevant factor. In addition, most applications running on supercomputers achieve only a fraction of a system's peak performance. It has been demonstrated that co-scheduling applications can improve overall system utilization and energy efficiency. Co-scheduling here means that more than one job is executed simultaneously on the same nodes of a system. However, applications being co-scheduled need to fulfill certain criteria such that mutual slowdown is kept at a minimum. We observe that with threads from different applications running on individual cores of the same multi-core processors, any influence mainly is due to sharing the memory hierarchy.
In this paper, we propose a simple approach for assessing the memory access characteristics of an application which allows estimating the mutual influence with other co-scheduled applications. We compare this with the stack reuse distance, another metric to characterize memory access behavior. Furthermore, we present a set of libraries and a first HPC scheduler prototype that automatically detects an application's main memory bandwidth utilization and prevents the co-scheduling of multiple main memory bandwidth limited applications. We demonstrate that our prototype achieves almost the same performance as we achieved with manually tuned co-schedules in previous work.