Authors:
Virginia Niculescu
1
;
Frédéric Loulergue
2
;
Darius Bufnea
1
and
Adrian Sterca
1
Affiliations:
1
Faculty of Mathematics and Computer Science, Babeş-Bolyai University, Cluj-Napoca, Romania
;
2
School of Informatics, Computing and Cyber Systems, Northern Arizona University, U.S.A., Univ. Orleans, INSA Centre Val de Loire, LIFO EA 4022, Orléans, France
Keyword(s):
Parallel Programming, Software Engineering, Recursive Data Structures, Design Patterns, Separation of Concerns.
Abstract:
Parallel programming is more complex than sequential programming. It is therefore more difficult to achieve the same software quality in a parallel context. High-level parallel programming approaches are intermediate approaches where users are offered simplified APIs. There is a trade-off between expressivity and programming productivity, while still offering good performance. By being less error-prone, high-level approaches can improve application quality. From the API user point of view, such approaches should provide ease of programming without hindering performance. From the API implementor point of view, such approaches should be portable across parallel paradigms and extensible. JPLF is a framework for the Java language based on the theory of Powerlists, which are parallel recursive data structures. It is a high-level parallel programming approach that possesses the qualities mentioned above. This paper reflects on the design of JPLF: it explains the design choices and highligh
ts the design patterns and design principles applied to build JPLF.
(More)