Design-Space Exploration of Stream Programs through Semantic-Preserving Transformations. de Oliveira Castro, P.; Louise, S.; and Barthou, D. .
abstract   bibtex   
Stream languages explicitly describe fork-join parallelism and pipelines, offering a powerful programming model for many-core Multi-Processor Systems on Chip (MPSoC). In an embedded resource-constrained system, adapting stream programs to fit memory requirements is particularly important. In this paper we present a design-space exploration technique to reduce the minimal memory required when running stream programs on MPSoC; this allows to target memory constrained systems and in some cases obtain better performance. Using a set of semantically preserving transformations, we explore a large number of equivalent program variants; we select the variant that minimizes a buffer evaluation metric. To cope efficiently with large program instances we propose and evaluate an heuristic for this method. We demonstrate the interest of our method on a panel of ten significant benchmarks. As an illustration, we measure the minimal memory required using a multi-core modulo scheduling. Our approach lowers considerably the minimal memory required for seven of the ten benchmarks.
@unpublished{DEOLIVEIRACASTRO:2009:HAL-00447376:1,
  HAL_ID = {hal-00447376},
  pdf = {http://hal.archives-ouvertes.fr/hal-00447376/PDF/stream_transformations_hal.pdf},
  title = { {D}esign-{S}pace {E}xploration of {S}tream {P}rograms through {S}emantic-{P}reserving {T}ransformations},
  author={de Oliveira Castro, Pablo and Louise, St\'ephane and Barthou, Denis},
  abstract = {{S}tream languages explicitly describe fork-join parallelism and pipelines, offering a powerful programming model for many-core {M}ulti-{P}rocessor {S}ystems on {C}hip ({MPS}o{C}). {I}n an embedded resource-constrained system, adapting stream programs to fit memory requirements is particularly important. {I}n this paper we present a design-space exploration technique to reduce the minimal memory required when running stream programs on {MPS}o{C}; this allows to target memory constrained systems and in some cases obtain better performance. {U}sing a set of semantically preserving transformations, we explore a large number of equivalent program variants; we select the variant that minimizes a buffer evaluation metric. {T}o cope efficiently with large program instances we propose and evaluate an heuristic for this method. {W}e demonstrate the interest of our method on a panel of ten significant benchmarks. {A}s an illustration, we measure the minimal memory required using a multi-core modulo scheduling. {O}ur approach lowers considerably the minimal memory required for seven of the ten benchmarks.},
}
Downloads: 0