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


Go to materials

Date Added:


Date Modified:



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

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




Scalability, Portability, Parallel Programming, Declarative Languages
Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.