This paper presents the main ideas of the high-performance component-based Grid programming environment of the Grid.it project. High-performance components are characterized by a programming model that integrates the concepts of structured parallelism, component interaction, compositionality, and adaptivity. We show that ASSIST, the prototype of parallel programming environment currently under development at our group, is a suitable basis to capture all the desired features of the component model in a flexible and efficient manner. For the sake of interoperability, ASSIST modules or programs are automatically encapsulated in standard frameworks; currently, we are experimenting Web Services and the CORBA Component Model. Grid applications, built as compositions of ASSIST components and possibly other existing (legacy) components, are supported by an innovative Grid Abstract Machine, that includes essential abstractions of standard middleware services and a hierarchical Application Manager (AM). AM supports static allocation and dynamic reallocation of adaptive applications according to a performance contract, a reconfiguration strategy, and a performance model.
Keywords:Components, Structured Parallel Programming, Programming Models, Grid, Adaptive Applications, High Performance Computing, Reconfiguration.
IntroductionIn the context of Grid platforms at various levels of integration [1], a Gridaware application must be able to deal with heterogeneity and dynamicity in * This work has been supported by the Italian MIUR FIRB Grid.it project (RBNE01KNFP) on Highperformance Grid Platforms and Tools, and by the MIUR CNR Strategic Project L 499/97-2000 on Highperformance Distributed Enabling Platforms. 2 the most effective way (adaptive applications), in order to guarantee the specified level of performance in spite of the variety of run-time events causing modifications in resource availability (load unbalancing, node/network faults, administration issues, emergencies, and so on). With respect to traditional platforms, when the Grid is taken into account it is much more important to rely on application development environments and tools that both guarantee high-level programmability, application compositionality, software interoperability and reuse, and, they are able to achieve high-performance and the ability to adapt to the evolution of underlying technologies (networks, nodes, clusters, operating systems, middleware) [2][3][4][5][6][7][8]. Achieving this high-level view of Grid application development is the basic goal of our research, in the Grid.it national project [9] and in associated initiatives at the national and European level.In order to be able to design, develop and deploy such kind of high-performance Grid-aware applications efficiently, we are interested in innovative programming environments that i) support the programmers in all the activities related to parallelism exploitation, by providing some kind of structured primitives for parallelism exploitation; ii) allow to achieve full interoper...