Scheduling Tasks to Maximize Usage of Aggregate Variables in Place

  • Authors:
  • Samah Abu-Mahmeed;Cheryl Mccosh;Zoran Budimlić;Ken Kennedy;Kaushik Ravindran;Kevin Hogan;Paul Austin;Steve Rogers;Jacob Kornerup

  • Affiliations:
  • Computer Science Department, Rice University, Houston TX 77005;Computer Science Department, Rice University, Houston TX 77005;Computer Science Department, Rice University, Houston TX 77005;Computer Science Department, Rice University, Houston TX 77005;National Instruments, Austin TX 78759;National Instruments, Austin TX 78759;National Instruments, Austin TX 78759;National Instruments, Austin TX 78759;National Instruments, Austin TX 78759

  • Venue:
  • CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Single-assignment languages with copy semantics have a very simple and approachable programming model. A naïve implementation of the copy semantics that copies the result of every computation to a new location, can result in poor performance. Whereas, an implementation that keeps the results in the same location, when possible, can achieve much higher performance. In this paper, we present a greedy algorithm for in-place computation of aggregate (array and structure) variables. Our algorithm greedily picks the most profitable opportunities for in-place computation, then updates the scheduling and in-place constraints in the program graph. The algorithm runs in $O(T log T + E_W V + V^2)$ time, where T is the number of in-placeness opportunities, E W is the number of edges and V the number of computational nodes in a program graph. We evaluate the performance of the code generated by the LabVIEWTMcompiler using our algorithm against the code that performs no in-place computation at all, resulting in significant application performance improvements. We also compare the performance of the code generated by our algorithm against the commercial LabVIEW compiler that uses an ad-hoc in-placeness strategy. The results show that our algorithm matches the performance of the current LabVIEW strategy in most cases, while in some cases outperforming it significantly.