Register loading via linear programming

  • Authors:
  • Gruia Calinescu;Minming Li

  • Affiliations:
  • Department of Computer Science, Illinois Institute of Technology;Department of Computer Science, City University of Hong Kong

  • Venue:
  • WADS'11 Proceedings of the 12th international conference on Algorithms and data structures
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We study the following optimization problem. The input is a number k and a directed graph with a specified "start" vertex, each of whose vertices may have one "memory bank requirement", an integer. There are k "registers", labeled 1...k. A valid solution associates to the vertices with no bank requirement one or more "load instructions" L[b, j], for bank b and register j, such that every directed trail from the start vertex to some vertex with bank requirement c contains a vertex u that has been associated L[c, i] (for some register i ≤ k) and no vertex following u in the trail has been associated an L[b, i], for any bank b. The objective is to minimize the total number of associated load instructions. We give a k(k + 1)-approximation algorithm based on linear programming rounding, with (k+1) being the best possible unless Vertex Cover has approximation 2 - ε for ε 0. We also present a O(k log n) approximation, with n being the number of vertices in the input directed graph. Based on the same linear program, another rounding method outputs a valid solution with objective at most 2k times the optimum for k registers, using 2k registers.