The# Model for Parallel Programming: From Processes To Components with Insignificant Performance Overheads (original) (raw)

The # model: separation of concerns for reconciling modularity, abstraction and efficiency in distributed parallel programming

Proceedings of the 2005 ACM symposium …, 2005

The computer science community has been looking for parallel languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to work with large-scale programs. This paper discusses how the # parallel programming model addresses the issues of modularity and abstraction of parallel programs using the techniques of separation of concerns.

Design and Implementation of an Environment for Component-Based Parallel Programming

… Science-VECPAR 2006, 2007

Motivated by the inadequacy of current parallel programming artifacts, the # component model was proposed to meet the new complexity of high performance computing (HPC). It has solid formal foundations, layed on category theory and Petri nets. This paper presents some important design and implementation issues on the implementation of programming frameworks based on the # component model.

A Component Model for High Level and Efficient Parallel Programming on Distributed Architectures

iadis.net

The computer science community has claimed for parallel languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to work with large-scale programs. This paper presents general aspects about the #1 parallel programming model and its associated programming environment, designed to address these issues.

A Platform of Components for Large Scale Parallel Programming

Component-based programming has been applied to address the requirements of large scale applications from sciences and engineering, with high performance computing requirements. However, parallelism has been poorly supported in usual component infrastructures. This paper presents the design and implementation of a parallel components platform based on the HASH component model, targeting clusters and well suited for programming-in-the-large.

A High Performance Computing Platform for Component-Based Parallel Programming

sbc.org.br

Component-based programming has been applied to address the requirements of High Performance Computing (HPC) applications. Due the poor support of parallelism on current infrastructures, the # component model and its based framework for parallel applications have been proposed, motivating the development of component based environments for parallel programming targeting high-end computing architecture.

A case study on expressiveness and performance of component-oriented parallel programming

2013

Component-oriented programming has been applied to address the requirements of large-scale applications from computational sciences and engineering that present high performance computing (HPC) requirements. However, parallelism continues to be a challenging requirement in the design of CBHPC (Component-Based High Performance Computing) platforms. This paper presents strong evidence about the efficacy and the efficiency of HPE (Hash Programming Environment), a CBHPC platform that provides full support for parallel programming, on the development, deployment and execution of numerical simulation code onto cluster computing platforms.

Models and languages for parallel computation

1998

Abstract We survey parallel programming models and languages using six criteria to assess their suitability for realistic portable parallel programming. We argue that an ideal model should by easy to program, should have a software development methodology, should be architecture-independent, should be easy to understand, should guarantee performance, and should provide accurate information about the cost of programs.

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...

Parallel programming models: a survey

Parallel programming and the design of efficient parallel programs is a development area of growing importance. Parallel programming models are almost used to integrate parallel software concepts into a sequential code. These models represent an abstraction of the hardware capabilities to the programmer. In fact, a model is a bridge between the application to be parallelized and the machine organization. Up to now, a variety of programming models have been developed, each having its own approach. This paper enumerates various existing parallel programming models in the literature. The purpose is to perform a comparative evaluation of the mostly used ones, namely MapReduce, Cilk, Cilk++, OpenMP and MPI, within some extracted features.

How to Write Parallel Programs: A Guide to the Perplexed

ACM Computing Surveys (CSUR), 1989

We present a framework for parallel programming, based on three conceptual classes for understanding parallelism and three programming paradigms for implementing parallel programs. The conceptual classes are result parallelism, which centers on parallel computation of all elements in a ...