Machine-Independent Parallel Programming Using the Divide-and-Conquer Paradigm

Author(s):  
Santhosh Kumaran ◽  
Michael J. Quinn
2019 ◽  
Author(s):  
Geaninne Lopes ◽  
Aline Mello ◽  
Ewerson Carvalho ◽  
César Marcon

This work investigates the use of parallel programming paradigms in the development of applications targeting a Multiprocessor System-on-Chip (MPSoC). We implemented Matrix Multiplication, Image Manipulation and Advanced Encryption Standard (AES) applications in the Master-Slave, Pipeline and Divide-and-Conquer paradigms, and applied execution time and power dissipation as criteria for evaluating the performance of the applications executing according to the paradigms on an MPSoC architecture. The obtained results allowed ​us to conclude that there are optimal application-paradigm relations. Pipeline presents lower execution time and lower power dissipation for the Image Manipulation application; whereas, Master-Slave performs better for the Matrix Multiplication and AES applications. However, when the input size of the applications increases, the Divide-and-Conquer paradigm tends to minimize the execution time for Matrix Multiplication application. ​The main contributions of this work are the development of applications, considering different paradigms, and the impact evaluation of these paradigms on MPSoC architecture.


2000 ◽  
Vol 10 (02n03) ◽  
pp. 239-250 ◽  
Author(s):  
CHRISTOPH A. HERRMANN ◽  
CHRISTIAN LENGAUER

We propose the higher-order functional style for the parallel programming of algorithms. The functional language [Formula: see text], a subset of the language Haskell, facilitates the clean integration of skeletons into a functional program. Skeletons are predefined programming schemata with an efficient parallel implementation. We report on our compiler, which translates [Formula: see text] programs into C+MPI, especially on the design decisions we made. Two small examples, the n queens problem and Karatsuba's polynomial multiplication, are presented to demonstrate the programming comfort and the speedup one can obtain.


1999 ◽  
Vol 09 (03) ◽  
pp. 335-345 ◽  
Author(s):  
ZHENJIANG HU ◽  
MASATO TAKEICHI

It is widely recognized that a key problem of parallel computation is in the development of both efficient and correct parallel software. Although many advanced language features and compilation techniques have been proposed to alleviate the complexity of parallel programming, much effort is still required to develop parallelism in a formal and systematic way. In this paper, we intend to clarify this point by demonstrating a formal derivation of a correct but efficient homomorphic parallel algorithm for a simple language recognition problem known as bracket matching. To the best of our knowledge, our formal derivation leads to a novel divide-and-conquer parallel algorithm for bracket matching.


2013 ◽  
Vol 756-759 ◽  
pp. 2825-2828
Author(s):  
Xue Chun Wang ◽  
Quan Lu Zheng

Parallel computing is in parallel computer system for parallel processing of data and information, often also known as the high performance computing or super computing. The content of parallel computing were introduced, the realization of parallel computing and MPI parallel programming under Linux environment were described. The parallel algorithm based on divide and conquer method to solve rectangle placemen problem was designed and implemented with two processors. Finally, Through the performance testing and comparison, we verified the efficiency of parallel computing.


1994 ◽  
Vol 04 (03) ◽  
pp. 329-338 ◽  
Author(s):  
JOHN T. O’DONNELL

The parallel scan algorithm plays an important role in parallel programming, but previous explanations of it generally rely on informal methods that fail to establish its correctness. Equational reasoning in a pure functional language provides a formal vehicle for stating the parallel scan algorithm and proving that a parallel architecture executes it correctly. The two key ideas in the proof are (1) a collection of lemmas that show how folds and scans can be decomposed into smaller problems, supporting a divide-and-conquer strategy, and (2) a formal specification of the abstract parallel architecture in the same language used to specify the problem, making it possible to reason formally about how the architecture executes the algorithm.


2020 ◽  
Vol 16 (2) ◽  
pp. 197-206
Author(s):  
Virginia Niculescu ◽  
Darius Bufnea ◽  
Adrian Sterca

This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framework is a programming framework that helps programmers build parallel programs using existing building blocks. The framework is based on {\em PowerLists} and PList Theories and it naturally supports multi-way Divide and Conquer. By using this framework, the programmer is exempted from dealing with all the complexities of writing parallel programs from scratch. This extension to the JPLF framework adds PLists support to the framework and so, it enlarges the applicability of the framework to a larger set of parallel solvable problems. Using this extension, we may apply more flexible data division strategies. In addition, the length of the input lists no longer has to be a power of two – as required by the PowerLists theory. In this paper we unveil new applications that emphasize the new class of computations that can be executed within the JPLF framework. We also give a detailed description of the data structures and functions involved in the PLists extension of the JPLF, and extended performance experiments are described and analyzed.


Sign in / Sign up

Export Citation Format

Share Document