Adapting Convergent Scheduling Using Machine-Learning [chapter]

Diego Puppin, Mark Stephenson, Saman Amarasinghe, Martin Martin, Una-May O'Reilly
2004 Lecture Notes in Computer Science  
Convergent scheduling is a general framework for instruction scheduling and cluster assignment for parallel, clustered architectures. A convergent scheduler is composed of many independent passes, each of which implements a specific compiler heuristic. Each of the passes shares a common interface, which allows them to be run multiple times, and in any order. Because of this, a convergent scheduler is presented with a vast number of legal pass orderings. In this work, we use machine-learning
more » ... niques to automatically search for good orderings. We do so by evolving, through genetic programming, s-expressions that describe a particular pass sequence. Our system has the flexibility to create dynamic sequences where the ordering of the passes is predicated upon characteristics of the program being compiled. In particular, we implemented a few tests on the present state of the code being compiled. We are able to find improved sequences for a range of clustered architectures. These sequences were tested with crossvalidation, and generally outperform Desoli's PCC and UAS.
doi:10.1007/978-3-540-24644-2_2 fatcat:mutyd35akbbizam7n4i6lgbuf4