Component-Based Software Engineering (CBSE)
Fine Grained Component Engineering of Adaptive Overlays: Experiences and Perspectives
by Gareth Tyson
Technical Report no. COMP-02-2009, Lancaster University
A Reflective Middleware to Support Peer-to-Peer Overlay Adaptation
by Gareth Tyson
In Proc. 9th Intl. IFIP Conference on Distributed Applications and Interoperable Systems (DAIS).
The Survival of the Fittest: An Evolutionary Approach to Deploying Adaptive Functionality in Peer-to-Peer Systems
by Gareth Tyson
In Proc. Workshop on Adaptive and Reflective Middleware (ARM), co-located with ACM/IFIP/USENIX Middleware.
3 views
Seen by:A Type System for Parallel Components
The first paper we have written about HTS (Hash Type System), in 2009, the type system of the HPE platform. It was not published.
The # component model was proposed to improve the practice of parallel programming. This paper introduces a type... more The # component model was proposed to improve the practice of parallel programming. This paper introduces a type system for # programming systems, aiming to lift the abstraction and safety of programming for parallel computing architectures by introducing a notion of abstract component based on universal and existential bounded quantification. Issues about the implementation of such type system in HPE, a # programming system, are also discussed.
Design and Implementation of an Environment for Component-Based Parallel Programming
Lecture Notes in Computer Science
Volume 4395, pages 184-197, 2007
DOI: 10.1007/978-3-540-71351-7_15
Motivated by the inadequacy of current parallel programming artifacts, the # component model was proposed to meet the... more 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.
Using Aspects for Supporting Procedural Modules in # Programming
Lecture Notes in Computer Science
Vol. 3648, pages 730-739.
January 2005
Proceedings of Euro-Par'2005
Parallel programming still demands for higher-level lan- guages, models, and tools that do not incur in performance... more Parallel programming still demands for higher-level lan- guages, models, and tools that do not incur in performance penalties. The # programming model aims to meet those claims in large-scale programs. This paper describes how the # programming model works with procedural languages by using techniques from AOP (Aspect Oriented Programming). Performance comparisons with MPI are presented.
An Institutional Theory for #-Components
Electronic Notes in Theoretical Computer Science
Volume 195, Pages 113–132
January 2008
Proceedings of the Brazilian Symposium on Formal Methods (SBMF 2006)
The # (hash) component model has been proposed to bring the advantages of a component-based perspective of software... more The # (hash) component model has been proposed to bring the advantages of a component-based perspective of software for the development of high performance computing applications, targeting computer architectures enabled for grid, cluster and capability computing. In simple terms, it is a component model for general purpose parallel programming targeting distributed architectures. This paper presents an institutional theory for #-components, which has originated the idea of introducing parameterized and recursive abstract component types in # programming systems, making possible a general notion of skeletal programming.
A Component Model for High Level and Efficient Parallel Programming on Distributed Architectures
Proceedings of 2005 IADIS International Conference on Applied Computing (IADIS'2005)
Volume 2
June 2005
The computer science community has claimed for parallel languages and models with a higher level of abstraction and... more 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.
High Level Service Connectors for Components-Based High Performance Computing
Proceeding of the 19th International Symposium on on Computer Architecture and High Performance Computing, 2007 (SBAC-PAD 2007).
Component-based programming has been applied to address the requirements of applications in high performance computing... more Component-based programming has been applied to address the requirements of applications in high performance computing (HPC). The usual service connectors of commercial component models do not fit some requirements of HPC, mainly regarding the support of parallelism, however. This paper looks at extensions to the usual notion of service connector to meet such requirements, using the # component model as a substratum, evidencing its expressiveness.
Separation of Concerns for Improving the Practice of Parallel Programming
INFORMATION, An International Journal
Volume 8, Number 5, pp. 621-638
2005
The computer science community has been looking for parallel languages and models with a higher level of abstraction... more 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 issues of modularity and abstraction of parallel programs using the techniques of separation of concerns.
The # model: separation of concerns for reconciling modularity, abstraction and efficiency in distributed parallel programming
Proceedings of ACM Symposium on Applied Computing (SAC'2005)
Special Track on Separation of Concerns (SoC)
The computer science community has been looking for parallel languages and models with a higher level of abstraction... more 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.
A High Performance Computing Platform for Component-Based Parallel Programming
I Worshop on Languages and Tools for Parallel and Distributed Programming (LTPD'2007)
Gramado, Brazil
Component-based programming has been applied to address the requirements of High Performance Computing (HPC)... more 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.
Compositional Specification of Parallel Components Using Circus
Electronic Notes in Theoretical Computer Science
Volume 260, 1 January 2010, Pages 47–72
Proceedings of the 5th International Workshop on Formal Aspects of Component Software (FACS'2008)
The # (hash) component model aims to take advantage of a component-based perspective of software for the development... more The # (hash) component model aims to take advantage of a component-based perspective of software for the development of high-performance computing applications targeted at parallel distributed architectures. This paper presents an approach for specifying #-components using Circus, to provide the ability of reasoning about behavioral and functional properties of #-components and their composition, as well as to partially generate code of their units through the application of successive semi-automatic refinement steps. On the Circus side, the # component model provides a new compositional approach to combine a Circus specification to form new ones, widening its applicability.
Towards an architecture for component‐oriented parallel programming
Concurrency and Computation: Practice & Experience - Component and Framework Technology in High-Performance and Scientific Computing
Volume 19 Issue 5, April 2007
John Wiley and Sons Ltd. Chichester, UK
The # component model was proposed to meet the growing demands of new complex applications of science and engineering... more The # component model was proposed to meet the growing demands of new complex applications of science and engineering that require productive and efficient use of high-performance computing architectures. This paper presents the principles, intuition, and theories underlying the # component model, and the design of an architecture for programming frameworks that comply to the # component model.
Component-Based Refactoring of Parallel Numerical Simulation Programs: A Case Study on Component-Based Parallel Programming
23rd International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'2011)
Component-based programming has been applied to address the requirements of large scale applications from sciences and... more Component-based programming has been applied to address the requirements of large scale applications from sciences and engineering with high performance computing (HPC) requirements. However, parallelism has been poorly supported in usual component infrastructures. This paper evidences the efficacy of an HPC platform of parallel components for development and execution of numerical simulation code,mostly found in these applications.
A categorical characterization for the compositional features of the # component model
ACM SIGSOFT Software Engineering Notes Homepage
Volume 31 Issue 2, March 2006
ACM New York, NY, USA
SAVCBS '05 (Proceedings of the 2005 conference on Specification and verification of component-based systems)
The # programming model attempts to address the needs of the high performance computing community for new paradigms... more The # programming model attempts to address the needs of the high performance computing community for new paradigms that reconcile efficiency, portability, abstraction and generality issues on parallel programming for high-end distributed architectures. This paper provides a semantics for the compositional features of # programs, based on category theory.
The# Model for Parallel Programming: From Processes To Components with Insignificant Performance Overheads
II Workshop on Components and Frameworks for High Performance Computing (CompFrame'2005)
The computer science community has claimed for parallel programming languages and models with a higher level of... more The computer science community has claimed for parallel programming 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 deal with large-scale programs. This paper presents the # component model for parallel programming, intended to meet these issues.
Implementing endogenous and exogenous connectors with the common component architecture
II Workshop on Component-Based High Performance Computing (CBHPC'2009)
Components and connections are the basis of the CCA model, whereas the way which ports are connected to each other is... more Components and connections are the basis of the CCA model, whereas the way which ports are connected to each other is left unspecified. Due to this characteristic, CCA is seen as a low-level component model in a including models that support more sophisticated connections. In this paper, we use the notion of endogenous and exogenous connectors to designate software artifacts that are meant to encapsulate interaction among components at high-level of the component models. Therefore, we describe implementations of exogenous and endogenous connectors with CCA components and their use in some high performance computing applications. Furthermore, we discuss how these implementations can be used to implement some models of parallel computations.
The design of a CCA framework with distribution, parallelism, and recursive composition
III Workshop on Component-Based High Performance Computing (CBHPC'2010) - Brussels, Belgium
HPE is a platform of parallel components that complies to the # component model, whose components are intrinsically... more HPE is a platform of parallel components that complies to the # component model, whose components are intrinsically parallel. This paper describes the design of a new CCA framework based on HPE, aimed to reconcile distribution and parallelism of components. Besides exposing the essential differences between the two platforms, the new framework has a set of features that distinguishes it from other CCA frameworks.
On the Design of Abstract Binding Connectors for High Performance Computing Component Models
Joint Conference on HPC Grid programming Environments and Components (HPC-GECO) and on Components and Frameworks for High Performance Computing (CompFrame'2007)
Some requirements of high-performance computing (HPC), mainly regarding parallel synchronization, are not met by the... more Some requirements of high-performance computing (HPC), mainly regarding parallel synchronization, are not met by the service connectors of standard commercial component models. Thus, this paper analyzes the usual extensions to the notion of service connector and provides alternative solutions based on type system theory, achieving a higher-level of abstraction. A notion of “abstract connector”, adopted by HPE (the # Programming Environment), is presented.
