- Portable Parallel Programs using Declarative Programming and Architecture-aware Libraries
-
Material Type:
Article / White paper 
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 BeirutDescription: 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
Intel® Developer Zone:
Courseware - Programming Language Design
Intel® Developer Zone:
Courseware - Programming Language Design 