StreamIt: A Language and Compiler for Communication-Exposed Architectures
With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, Sma...
Main Authors: | , , , , |
---|---|
Format: | Article |
Language: | en_US |
Published: |
2003
|
Subjects: | |
Online Access: | http://hdl.handle.net/1721.1/3690 |
_version_ | 1811078103010639872 |
---|---|
author | Thies, William Gordon, Michael I. Karczmarek, Michal Maze, David Amarasinghe, Saman P. |
author_facet | Thies, William Gordon, Michael I. Karczmarek, Michal Maze, David Amarasinghe, Saman P. |
author_sort | Thies, William |
collection | MIT |
description | With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, SmartMemories, TRIPS). However, for their use to be widespread, it will be necesary to develop a common machine language to allow programmers to express an algorithm in a way that can be efficiently mapped across these architectures. We propose a new common machine language for grid-based software-exposed architectures: StreamIt. StreamIt is a high-level programming language with explicit support for streaming computation. Unlike sequential programs with obscured dependence information and complex communication patterns, a stream program is naturally written as a set of concurrent filters with regular steady-state communication. The language imposes a hierarchical structure on the stream graph that enables novel representations and optimizations within the StreamIt compiler. We have implemented a fully functional compiler that parallelizes StreamIt applications for Raw, including several load-balancing transformations. Though StreamIt exposes the parallelism and communication patterns of stream programs, analysis is needed to adapt a stream program to a software-exposed processor. We describe a partitioning algorithm that employs fission and fusion transformations to adjust the granularity of a stream graph, a layout algorithm that maps a stream graph to a given network topology, and a scheduling strategy that generates a fine-grained static communication pattern for each computational element. Using the cycle-accurate Raw simulator, we demonstrate that the StreamIt compiler can automatically map a high-level stream abstraction to Raw. We consider this work to be a first step towards a portable programming model for communication-exposed architectures. |
first_indexed | 2024-09-23T10:53:26Z |
format | Article |
id | mit-1721.1/3690 |
institution | Massachusetts Institute of Technology |
language | en_US |
last_indexed | 2024-09-23T10:53:26Z |
publishDate | 2003 |
record_format | dspace |
spelling | mit-1721.1/36902019-04-10T12:16:21Z StreamIt: A Language and Compiler for Communication-Exposed Architectures Thies, William Gordon, Michael I. Karczmarek, Michal Maze, David Amarasinghe, Saman P. communication-exposed architectures StreamIt Raw software-exposed architectures streaming application domain With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, SmartMemories, TRIPS). However, for their use to be widespread, it will be necesary to develop a common machine language to allow programmers to express an algorithm in a way that can be efficiently mapped across these architectures. We propose a new common machine language for grid-based software-exposed architectures: StreamIt. StreamIt is a high-level programming language with explicit support for streaming computation. Unlike sequential programs with obscured dependence information and complex communication patterns, a stream program is naturally written as a set of concurrent filters with regular steady-state communication. The language imposes a hierarchical structure on the stream graph that enables novel representations and optimizations within the StreamIt compiler. We have implemented a fully functional compiler that parallelizes StreamIt applications for Raw, including several load-balancing transformations. Though StreamIt exposes the parallelism and communication patterns of stream programs, analysis is needed to adapt a stream program to a software-exposed processor. We describe a partitioning algorithm that employs fission and fusion transformations to adjust the granularity of a stream graph, a layout algorithm that maps a stream graph to a given network topology, and a scheduling strategy that generates a fine-grained static communication pattern for each computational element. Using the cycle-accurate Raw simulator, we demonstrate that the StreamIt compiler can automatically map a high-level stream abstraction to Raw. We consider this work to be a first step towards a portable programming model for communication-exposed architectures. Singapore-MIT Alliance (SMA) 2003-11-17T16:54:18Z 2003-11-17T16:54:18Z 2003-01 Article http://hdl.handle.net/1721.1/3690 en_US Computer Science (CS); 726684 bytes application/pdf application/pdf |
spellingShingle | communication-exposed architectures StreamIt Raw software-exposed architectures streaming application domain Thies, William Gordon, Michael I. Karczmarek, Michal Maze, David Amarasinghe, Saman P. StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title | StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title_full | StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title_fullStr | StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title_full_unstemmed | StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title_short | StreamIt: A Language and Compiler for Communication-Exposed Architectures |
title_sort | streamit a language and compiler for communication exposed architectures |
topic | communication-exposed architectures StreamIt Raw software-exposed architectures streaming application domain |
url | http://hdl.handle.net/1721.1/3690 |
work_keys_str_mv | AT thieswilliam streamitalanguageandcompilerforcommunicationexposedarchitectures AT gordonmichaeli streamitalanguageandcompilerforcommunicationexposedarchitectures AT karczmarekmichal streamitalanguageandcompilerforcommunicationexposedarchitectures AT mazedavid streamitalanguageandcompilerforcommunicationexposedarchitectures AT amarasinghesamanp streamitalanguageandcompilerforcommunicationexposedarchitectures |