Identifying task-level parallelism by functional transformation with side-effect domains

  • Authors:
  • Shawn Outman

  • Affiliations:
  • University of Florida

  • Venue:
  • Proceedings of the 47th Annual Southeast Regional Conference
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Functional programming languages typically minimize side effects and make the side effects that do exist explicit. This allows a compiler to easily extract task-level parallelism. Imperative languages rely on the programmer to order each operation to account for hidden side effects. An imperative compiler is not easily able to extract parallelism since it cannot always know if two operations are independent. In this paper, we introduce the concept of side-effect domains, where external API functions are declared as belonging to domains in which side-effects only affect functions with common domains. We describe techniques to use dependence graphs with the introduction of side-effect dependences to transform imperative application logic into a functional representation in which task-level parallelism can be identified.