Reflections on the Design of Parallel Programming Frameworks (original) (raw)
Related papers
A Java Framework for High Level Parallel Programming Using Powerlists
2017
Parallel programs based on the Divide&Conquer paradigm could be successfully defined in a simple way using powerlists. These parallel recursive data structures and their algebraic theories offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications. The paper presents how programs based on powerlists can be implemented in Java using the JPLF framework we developed. The design of this framework is based on powerlists theory, but in the same time follows the object-oriented design principles that provide flexibility and maintainability. Examples are given and performance experiments are conducted. The results emphasize the utility and the efficiency of the framework.
Pattern-driven Design of a Multiparadigm Parallel Programming Framework
Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering
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 highlights the design patterns and design principles applied to build JPLF.
Approaching developments on parallel programming models through Java
Multicore platforms allow developers to optimize applications by intelligent partitioning different workloads on different processor cores. Currently, application programs are optimized to use multiple processor resources, resulting in faster application performance. Our earlier research work focused native thread for Java on windows thread, Pthread, Intel TBB, respectively, we developed NativeThreads, NativePthread, Java Native Intel TBB beneath windows 32-bit platform. This article aims to identify the future directions of native thread for Java on windows thread, Pthread, Intel TBB through JNI beneath windows 64-bit platforms and other platform besides. Furthermore, it articulates additional opening to pursue approaching developments on parallel programming models through Java
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
2017
The growing nature of the demand on the increasing use of parallel computing and parallel programming by the application development industry is forcing the researcher community to bring the modern and novel frameworks and models in order to increase the performance. A numerous number of research attempts are been carried out by renounced researchers in the past. Nevertheless, this domain is been the point of focus for over a decade due to the endless possibilities of the scope. The existing research outcomes are always been criticized due to the lack of practically and understand ability. Specifically, the ease of use to improve the programming paradigms based on the proposed methods. Also, the scope for improvement is always been ignored by the researchers. Thus, this work significantly contributes towards the practical importance and implications of the parallel programming models from a newer perspective. The major outcome of this work is to compare the benefits and drawbacks of...
A parallel programming methodology based on paradigms
Transputer and occam developments: WoTUG-18: …, 1995
Today's e orts are mainly concentrated on providing \standard" parallel languages to ensure the portability of programs across various architectures. It is now believed that the next level of abstraction that will be addressed is the application level. This paper argues that there is an intermediate level that consist of common parallel programming paradigms. It describes some of these paradigms and explains the basic principles behind a \paradigm-oriented" programming approach. Finally, it points to future directions which can make it feasible to build parallel CASE tools that achieve automatic parallel code generation.
Software Engineering Considerations in the Construction of Parallel Programs
Advances in Parallel Computing, 1995
In many papers describing parallel programming tools, the authors illustrate the strengths of their approach by presenting some impressive speedup results. However, is this the only metric by which we should judge the quality of their tool? Many of these tools offer significant software engineering advantages that reduce program development time and increase code reliability. This paper uses the Enterprise programming environment for coarse-grained parallel applications to illustrate the advantages of these tools. For most users, high performance is not an important evaluation criteria; other criteria, such as tool usability and program development savings, are often far more important. * This research has been funded in part by NSERC grants OGP-8173 and OGP-8191, a grant from IBM Canada Limited and the Netherlands Organization for Scientific Research (NWO). † A modified definition from a personal communication with Greg Wilson.
Parallel and Distributed Computing Using the Java Language Paradigm
1996
Abstract Parallel processing has emerged as a key enabling technology in modern computers, driven by the ever-increasing demand for higher performance, lower costs and sustained productivity in real-life applications. At the same time, the Internet, whose exponential growth in the last 4 years can be greatly attributed to the ever-increasing popularity of the World-Wide Web, has become a virtual in nite source of information and processing resources.
Survey on Parallel Programming Model
2008
The development of microprocessors design has been shifting to multi-core architectures. Therefore, it is expected that parallelism will play a significant role in future generations of applications. Throughout the years, there has been a myriad number of parallel programming models proposed. In choosing a parallel programming model, not only the performance aspect is important, but also qualitative the aspect of how well parallelism is abstracted to developers. A model with a well abstraction of parallelism leads to a higher application-development productivity. In this paper, we propose seven criteria to qualitatively evaluate parallel programming models. Our focus is on how parallelism is abstracted and presented to application developers. As a case study, we use these criteria to investigate six well-known parallel programming models in the HPC community.
Generating Parallel Program Frameworks from Parallel Design Patterns
Lecture Notes in Computer Science, 2000
Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. The CO¾P¿S parallel programming system provides a layered development process that applies these three techniques to the more difficult domain of parallel programming. The system generates correct frameworks from pattern template specifications at the highest layer and provides performance tuning opportunities at lower layers. Each of these features is a solution to a major problem with current parallel programming systems. This paper describes CO¾P¿S and its highest level of abstraction using an example program to demonstrate the programming model and one of the supported pattern templates. Our results show that a programmer using the system can quickly generate a correct parallel structure. Further, applications built using these structures provide good speedups for a small amount of development effort.
A comparative study of parallelization paradigms
Proceedings of the 7th …, 2008
Parallel programming is a challenging job in distributed community and depends upon the availability of suitable software tools and environment. And consequently, software developers have to face constraints such as nondeterminism, communication, synchronization, data partitioning ...