Sarközi, B. A. (2021). To Co-schedule or not to co-schedule? Efficiently utilizing large multicore machines [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.87732
Hardware components of computing systems are improving constantly, which leads to an increasing number of cores on multicore machines and computing clusters. The most powerful supercomputer in Austria, the VSC-4, has 37920 cores, and it is important to utilize the cores efficiently. Therefore, it is necessary to execute parallel applications methodically, e.g., by simultaneously executing (co-scheduling) them on compute nodes. In this work, we predict whether two parallel applications running on a multicore machine should be co-scheduled or not. Two applications should only be co scheduled, if there is at most a small slowdown of the co-scheduled runtime compared to the dedicated runtime of an application. We are interested in predicting this co-scheduling potential of long executions by sampling a short execution. We start by assessing runtime and scalability behaviors of diverse OpenMP applications and determine co-scheduling strategies leading to resource sharing conflicts of compute kernel sections. Then, we analyze hardware performance counters and select a subset of relevant counters indicating slowdowns. Finally, we create a prediction model using logistic regression and predict the co scheduling potential of two applications using performance counters. This thesis shows that executions on different sockets do not lead to resource sharing conflicts, whereas sharing sockets with a scatter affinity mapping lead to increased kernel times. We show the necessity of synchronizing kernel sections of co-scheduled applications, and therefore introduce a synchronization library. Our prediction models demonstrate the possibility of predicting co-scheduling potentials of two applications, which represents an efficient way of utilizing multicore machines.