High-Level Service Connectors for Component-Based High Performance Computing Francisco Heron de Carvalho-Junior Ricardo Cordeiro Corrˆ ea Gisele Azevedo Ara´ ujo Jefferson Carvalho Silva Departamento de Computac ¸˜ ao Universidade Federal do Cear´ a Fortaleza, Brazil {heron, correa, gisele,jefferson}@lia.ufc.br Rafael Dueire Lins Departamento de Eletr ˆ onica e Sistemas Universidade Federal de Pernambuco Recife, Brazil rdl@ufpe.br Abstract Component-based programming has been applied to ad- dress the requirements of applications in high performance computing (HPC). The usual service connectors of com- mercial 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 # compo- nent model as a substratum, evidencing its expressiveness. 1. Introduction The increasing relevance of applications that demand for high performance computing (HPC) has made parallel com- puting a mainstream technology, attracting the attention of the software industry. Such importance has been enforced by the increasing dissemination of off-the-shelf architec- tures for parallel computing, such as clusters and grids, and the consolidation of multicore processors in the hard- ware industry. Now, the knowledge on HPC techniques for parallel and distributed programming has become the key for reaching peak performance of contemporary computer architectures. Unfortunately, parallel programming is still hard to be incorporated into widespread platforms for soft- ware development [9, 33]. In the recent years, component technology has been ap- plied to meet the requirements of HPC applications, yield- ing the rise of component models and frameworks inspired by their success in the commercial arena [36], such as CCA and its compliant frameworks [6], Fractal/ProActive [10], and P-COM [27]. However, current component models have limitations to express some of the requirements of HPC applications. Indeed, they do not support neither a suitable notion of parallel component nor adequate connec- tors for parallel synchronization. For this reason, aiming at better support for parallelism ad hoc orthogonal extensions to HPC component models have been proposed. This paper looks at service connectors for components- based distributed and parallel programming for HPC appli- cations. Advanced concepts from type systems theory are applied to provide a higher-level of abstraction from the underlying computation platforms. The connectors are de- scribed in terms of the # component model, whose com- pliant programming systems support user-defined primi- tive and composite connectors, being independent from the evolution of the application requirements and technologi- cal contexts. Thus, this paper also serves both to evidence the expressive power of the # component model to describe connectors and to enumerate the set of service connectors that will be supported by a programming environment based on #-components that has been developed [13]. In Section 2, the # component model is introduced. Sec- tion 3 concerns about client/server bindings, commonly used in distributed parallel applications. Section 4 presents peer-to-peer bindings, suitable for parallel synchronization. Section 5 shows how higher-order facilities for client/server and peer-to-peer bindings can give support for skeletal pro- gramming. Section 6 introduces generic and abstract bind- ings, for supporting high level of abstraction in the use of bindings. Section 7 concludes the paper, outlining further developments of this work.