Optimistic Parallelism Requires Abstractions.
The problem of writing software for multicore processors is greatly simplified if we could automatically parallelize sequential programs. Although auto-parallelization has been studied for many decades, it has succeeded only in a few application areas such as dense matrix computations. In particular...
| Published in: | Communications of the ACM Vol. 52; no. 9; pp. 89 - 98 |
|---|---|
| Main Authors: | , , , , , |
| Format: | Article |
| Published: |
Association for Computing Machinery
Sep2009
|
| Subjects: | |
| Online Access: | View this record in EBSCOhost |
| fields | @attributes: recordID: 1 pdfLink: plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=44181663&site=ehost-live header: @attributes: shortDbName: hlh uiTerm: 44181663 longDbName: Humanities International Complete uiTag: AN controlInfo: bkinfo: jinfo: jid: 00010782 ACM jtl: Communications of the ACM issn: 00010782 maglogo: N pubinfo: dt: Sep2009 vid: 52 iid: 9 pid: 68 pub: Association for Computing Machinery artinfo: ui: 44181663 10.1145/1562164.1562188 ppf: 89 ppct: 9 formats: tig: atl: Optimistic Parallelism Requires Abstractions. aug: au: Kulkarni, Milind Pingali, Keshav Walter, Bruce Ramanarayanan, Ganesh Bala, Kavita Chew, L. Paul affil: University of Texas, Austin. Cornell University, Ithaca, NY. su: Parallel logic programming Abstract thought Microprocessors Computer logic Software architecture Sequential processing (Computer science) Data structures sug: subj: Parallel logic programming Abstract thought Microprocessors Computer logic Software architecture Sequential processing (Computer science) Data structures ab: The problem of writing software for multicore processors is greatly simplified if we could automatically parallelize sequential programs. Although auto-parallelization has been studied for many decades, it has succeeded only in a few application areas such as dense matrix computations. In particular, auto-parallelization of irregular programs, which are organized around large, pointer-based data structures like graphs, has seemed intractable. The Galois project is taking a fresh look at auto-parallelization. Rather than attempt to parallelize all programs no matter how obscurely they are written, we are designing programming abstractions that permit programmers to highlight opportunities for exploiting parallelism in sequential programs, and building a runtime system that uses these hints to execute the program in parallel. In this paper, we describe the design and implementation of a system based on these ideas. Experimental results for two real-world irregular applications, a Delaunay mesh refinement application and a graphics application that performs agglomerative clustering, demonstrate that this approach is promising. pubtype: Periodical doctype: Article src: R language: English refInfo: copyright: @attributes: flag: Y dt: @attributes: year: 2009 holdings: @attributes: islocal: N |
|---|