ACM Home Page
Please provide us with feedback. Feedback
Streamware: programming general-purpose multicore processors using streams
Full text FlvFlv (26:00),  Mp3Mp3 (11.33 MB),  PdfPdf (449 KB)
Source
Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems table of contents
Seattle, WA, USA
SESSION: Parallelism table of contents
Pages 297-307  
Year of Publication: 2008
ISBN:978-1-59593-958-6
Also published in ...
Authors
Jayanth Gummaraju  Stanford University, Stanford, CA
Joel Coburn  Stanford University, Stanford, CA
Yoshio Turner  Hewlett-Packard Labs., Palo Alto, CA
Mendel Rosenblum  Stanford University, Stanford, CA
Sponsors
ACM: Association for Computing Machinery
SIGARCH: ACM Special Interest Group on Computer Architecture
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 66,   Downloads (12 Months): 621,   Citation Count: 4
Additional Information:

appendices and supplements   abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1346281.1346319
What is a DOI?

APPENDICES and SUPPLEMENTS
Supplemental material for Streamware: programming general-purpose multicore processors using streams


ABSTRACT

Recently, the number of cores on general-purpose processors has been increasing rapidly. Using conventional programming models, it is challenging to effectively exploit these cores for maximal performance. An interesting alternative candidate for programming multiple cores is the stream programming model, which provides a framework for writing programs in a sequential-style while greatly simplifying the task of automatic parallelization. It has been shown that not only traditional media/image applications but also more general-purpose data-intensive applications can be expressed in the stream programming style.

In this paper, we investigate the potential to use the stream programming model to efficiently utilize commodity multicore general-purpose processors (e.g., Intel/AMD). Although several stream languages and stream compilers have recently been developed, they typically target special-purpose stream processors. In contrast, we propose a flexible software system, Streamware, which automatically maps stream programs onto a wide variety of general-purpose multicore processor configurations. We leverage existing compilation framework for stream processors and design a runtime environment which takes as input the output of these stream compilers in the form of machine-independent stream virtual machine code. The runtime environment assigns work to processor cores considering processor/cache configurations and adapts to workload variations. We evaluate this approach for a few general-purpose scientific applications on real hardware and a cycle-level simulator set-up to showcase scaling and contention issues. The results show that the stream programming model is a good choice for efficiently exploiting modern and future multicore CPUs for an important class of applications.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Intel Thread Building Blocks. osstbb.intel.com.
 
2
MPI. www.open-mpi.org.
 
3
NVidia G80. www.nvidia.com.
 
4
OpenMP. www.openmp.org.
 
5
RStream Compiler. www.reservoir.com.
 
6
T. Barth. Simplified discontinuous Galerkin methods for systems of conservation laws with convex extension. In Discontinuous Galerkin Methods, volume 11 of Lecture Notes in Computational Science and Engineering. Springer-Verlag, Heidelberg, 1999.
 
7
Y. Basar and M. Itskov. Constitutive model and finite element formulation for large strain elasto-plastic analysis of shells. In Journal of Computational Mechanics, Jun 1999.
 
8
N. Binkert, E. Hallnor, and S. Reinhardt. Network-oriented full system simulation using M5. In CAECW, 2003.
9
10
11
 
12
 
13
14
15
16
 
17
 
18
19
 
20
21
22
 
23
K. Mahesh et al. Large eddy simulation of reacting turbulent flows in complex geometries. ASME J. of Applied Mechanics, May 2006.
 
24
K. Yelick et al. Titanium: A high-performance Java dialect. In ACM Workshop on Java for High-Performance Network Computing, Feb 1998.
 
25
U. Kapasi, W. Dally, S. Rixner, J. Owens, and B. Khailany. The Imagine stream processor. In ICCD, Sep 2002.
 
26
 
27
28
29
30
31
 
32
M. D. McCool. Data-parallel programming on Cell BE and the GPU using the Rapidmind development platform. In GSPx Multicore Applications Conference, 2006.
33
 
34
T. Knight et al. Sequoia: Programming the Memory Hierarchy. In PPoPP, 2007.
35
36
 
37
 
38
39
 
40
D. Zhang, Q. Li, R. Rabbah, and S. Amarasinghe. A Lightweight Streaming Layer for Multicore Execution. In Workshop on Design, Architecture, and Simulation of Chip Multiprocessors, Dec 2007.


Collaborative Colleagues:
Jayanth Gummaraju: colleagues
Joel Coburn: colleagues
Yoshio Turner: colleagues
Mendel Rosenblum: colleagues