Zona para desarrolladores Intel®:
Courseware - Programming Language Design

  • Portable Parallel Programs using Declarative Programming and Architecture-aware Libraries
  • Material Type:

    Article / White paper

    ISN Logo

    Technical Format:

    PDF document

    Location:

    Go to materials

    Date Added:

    11/01/2011

    Date Modified:

    11/01/2011

    Author

    Ameen Jaber, American University of Beirut
    Mohamad Noureddine, American University of Beirut
    Mohamed Sabra, American University of Beirut
    Fadi Zaraket, American University of Beirut
    Description:

    Software programs written for a computer architecture with n processors require a re-write when migrated to an architecture with m processors where (m > n) in order to take advantage of the additional resources. Researchers suggested compiler based, annotation based, and api-based solutions. Compiler based solutions do not match manual optimizations. Annotation based and api-based solutions such as the OpenMP and the Intel Array Building Blocks work well with data parallel programs and do not scale well with branching programs. We present Portable Parallel Programming (TripleP), a parallel programming methodology that is composed of (1) a declarative programming language, (2) a set of libraries of data structures and algorithms optimized per each architecture, and (3) a synthesizer. The TripleP synthesizer accepts a TripleP declarative program, maps each program construct to algorithms and data structures optimized for the architecture at hand, and generates a parallel executable binary. We evaluated the TripleP methodology with three examples including the median, breadth first traversal, and the minimum spanning tree computations. Our results show that TripleP enables writing portable programs that make benefit of the additional resources across architectures and that run with near optimal performance gains on more parallel architectures.

    Recommended Audience:

    Advanced programmers, Beginning programmers, Graduate students

    Language:

    English

    Keywords:

    Scalability, Portability, Parallel Programming, Declarative Languages