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...

Descripción completa

Detalles Bibliográficos
Publicado en:Communications of the ACM Vol. 52; no. 9; pp. 89 - 98
Autores principales: Kulkarni, Milind, Pingali, Keshav, Walter, Bruce, Ramanarayanan, Ganesh, Bala, Kavita, Chew, L. Paul
Formato: Artículo
Publicado: Association for Computing Machinery Sep2009
Materias:
Acceso en línea:Ver este registro en 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