A Platform of Components for Large Scale Parallel Programming (original) (raw)

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.

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.

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.

Highly Scalable Distributed Component Framework for Scientific Computing

As scientific computing experiences continuous growth of the size of simulations, component frameworks intended for scientific computing need to handle more components and execute on numerous hardware resources simultaneously. Our distributed component framework CCALoop presents a novel design that supports scalability in both number of components in the system and distributed computing resources. CCALoop also presents several other beneficial design principles for distributed component frameworks such as fault-tolerance, parallel components, and support for multiple users. To provide scalability it distributes the responsibility for data queries and updates equally to all nodes in the system through a distributed hash table mechanism, while providing low latency in these operation through a method that guarantees one-hop routing of framework messages.

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.

CORBA Lightweight Components: A Model for Distributed Component-Based Heterogeneous Computation

Lecture Notes in Computer Science, 2001

In this article we present CORBA Lightweight Components, CORBA-LC, a new network-centered reflective component model which allows building distributed applications assembling binary independent components spread on the network. It provides a peer network view in which the component dependencies are managed automatically to perform an intelligent application run-time deployment, leading to better utilization of resources. We show the validity of the CORBA-LC approach in dealing with CSCW and Grid Computing applications.

POET (Parallel Object-Oriented Environment and Toolkit) and frameworks for scientific distributed computing

Proceedings of the Thirtieth Hawaii International Conference on System Sciences

O S T ' Frameworks for parallel computing have recently become popular as a means for preserving parallel algorithms as reusable components. Frameworks for parallel computing in general, and POET in particular, focus on finding ways to orchestrate and facilitate cooperation between components that implement the parallel algorithms. Since performance is a key requirement for POET applications, CORBA or CORBA-like systems are eschewed for a SPMD message-passing architecture common to the world of distributed-parallel computing. Though the system is written in C++ for portability, the behavior of POET is more like a classical framework, such as Smalltalk. POET seeks to be a general platform for scientific parallel algorithm components which can be modified, linked, "mixed and matched" to a user's specification. The purpose of this work is to identify a means for parallel code reuse and to make parallel computing more accessible to scientists whose expertise is outside the field of parallel computing. The POET framework provides two things: 1) an object model for parallel components that allows cooperation without being restrictive; 2) services that allow components to access and manage user data and message-passing facilities, etc. This work has evolved through application of a series of "real" distributed-parallel scientific problems. The paper focuses on what is required for parallel components to cooperate and at the same time remain "black-boxes" that users can drop into the frame without having to know the exquisite details of message-passing, data layout, etc. The paper walks through a specific example of a chemically reacting flow application. The example is implemented in POET and we identify component cooperation, usability and reusability in an anecdotal fashion. The following conclusions are drawn: 1) Specifically, POET components not only execute their assigned tasks, but provide data dependency information allowing components to cooperate on data decomposed across distributed machines. cu , This report was prepared as an account of work sponsored by an agency of the United States Government.

Performance technology for parallel and distributed component software

Concurrency and Computation: Practice and Experience, 2005

issues in high-performance component environments. We describe a prototype implementation of a performance measurement infrastructure for the Common Component Architecture (CCA) system. A case study demonstrating the use of this technology for integrated measurement, monitoring, and optimization in CCA component-based applications is given.

A Component Framework for HPC Applications

2001

We describe a general component software framework designed for demanding grid environments that provides optimal performance for the assembled component application. This is achieved by separating the high level abstract description of the composition from the low level implementations. These implementations are chosen at run time by performance analysis of the composed application on the currently available resources. We show through the solution of a simple linear algebra problem that the framework introduces minimal overheads while always selecting the most effective implementation.

A Component Architecture for High-Performance Scientific Computing

International Journal of High Performance Computing Applications, 2006

The Common Component Architecture (CCA) provides a means for software developers to manage the complexity of large-scale scientific simulations and to move toward a plug-and-play environment for high-performance computing. In the scientific computing context, component models also promote collaboration using independently developed software, thereby allowing particular individuals or groups to focus on the aspects of greatest interest to them. The CCA supports parallel and distributed computing as well as local high-performance connections between components in a language-independent manner. The design places minimal requirements on components and thus facilitates the integration of existing code into the CCA environment. The CCA model imposes minimal overhead to minimize the impact on application performance. The focus on high performance distinguishes the CCA from most other component models. The CCA is being applied within an increasing range of disciplines, including combustion research, global climate simulation, and computational chemistry.