Pluggable Grid Aspects for Scientific Applications
Grids offer new opportunities to scientists by promoting an effective way of sharing a wide range of resources. Current trend in Grid research is moving towards a unified set of Grid services, providing a single application programming interface that can transparently provide access to a diversity of resources. The next step for Grid development is to foster a seamless access to Grids services.
The complexity of Grid systems can be hidden behind Grid middleware. Examples include user authentication and authorization and resource discovery. However, to effectively leverage the benefits of a Grid, applications must be redesigned to the specific nature of Grids. For instance, to take advantage of the hierarchical nature computational Grids, made of a federation of Clusters, applications should be redesigned to include multiple levels of parallelism.
The ideal Grid programming environment, and the one with strongest probability of success, would be very close to a desktop programming environment. This research focuses on the development and deployment of a new middleware for Grid computing that pursuits this goal. The idea is to develop Grid enabled applications (i.e., applications that can take advantage of Grid resources) that resemble to traditional desktop applications, but can run on Grids by plugging modules that provide access to Grid services. For instance, an (un)pluggable module could provide remote execution (e.g., on some Grid compute node) of a certain application block of code. Unplugging such a module would provide a normal local execution.
This research focus on exploring aspect-oriented techniques to build pluggable modules (i.e., Grid aspects) that provide access to Grid services. These modules strongly rely on current Grid infra-structure (e.g., Globus toolkit) and will provide access to the following classes of Grid services:
- concurrent execution: specification of tasks that may be executed in parallel, synchronization among concurrent tasks and specification of multi-level parallelism;
- distributed execution: mapping and execution of tasks into distributed resources, according to task requirements (e.g., application level scheduling), task migration between resources and support to multiple communication middleware, taking advantage of the hierarchical nature of Grids (e.g., using different methods for intra‑cluster and inter-cluster communication);
- data services: access to multiple data sources, data distribution, replication and caching;
- utility services: application-level mechanisms to address node faults (e.g., to decide if the computation should by retried or simply discarded), checkpoint of application data, remote IO and application monitoring.
The new middleware will provide a smother (and reversible) path to enable applications to run on Grid environments.
The middleware will be validated through several case studies and from multiple application domains. Case studies are taken from existing code bases of project members, which require access to compute resources not currently available in a small cluster. These codes will be enabled to run on Grid environments by plugging Grid modules and will contribute to increase the community Grid users. Cases studies include:
- Optimization of biotechnological processes: this case study handles the use of evolutionary computation algorithms to two tasks in the optimization of biotechnological processes: the selection of the best mutant strains capable of achieving a high productivity in recombinant fermentation processes and the optimization of the trajectory of fermentation control variables over time.
- Thin-film nucleation and growth: these are complex phenomena of both scientific and technological interest, and proper simulation resorts to the use of a kinetic Monte Carlo algorithm, as it is appropriate for simulating large length-scales and long physical times.
- Mesoscopic modeling of polymer light emitting diodes: this application performs numerical simulations of charge injection, transport, trapping and recombination in PLEDs using a charge hopping model, which works at intermediate scale between atomic and macroscopic length scales, to assess the consequences of molecular properties, composition and microstructure of the polymer-based layer on device performance.
Additionally a well know case study will also be addressed (molecular dynamics simulation applied to induced unfolding of proteins and variants), where several parallel implementations are available (e.g., NAMD).
This project also addresses the development of support tools for suitable access to Grid environments. Visual tools to help the usage of Grid services will be developed, including means to visualize and to plug Grid aspects into scientific codes. These tools provide a set of pre-built modules, implementing Grid aspects that can be plugged into applications in a straightforward way, allowing the transparent execution and monitoring of applications on Grids developed under the context of the project.
- Design and implementation of a new grid middleware and support tools
- Migrate a small set of scientific applications, from multiple application domains, to grid environments
- Promote collaborations among researchers experts in grid/parallel computing and scientists with codes that can benefit from using grid computing
The AspectGrid (GRID/GRI/81880/2006) project is a 3 years project funded by Portuguese FCT (POSI) and by European funds (FEDER).
- João Luís Sobral (CCTC-UM) – Middleware / Project Leader
- Alberto Proença (CCTC-UM) – Middleware
- Diogo Telmo Neves (CCTC-UM) – Middleware
- Edgar Sousa (CCTC-UM) – Middleware
- Rui Carlos Gonçalves (CCTC-UM) – Applications
- Miguel Rocha (CCTC-UM) – Applications
- António Cadilhe (CF-UM) – Applications
- Marta Ramos (CF-UM) – Applications
- Luís Marques (CF-UM) – Applications
- Rui Brito (CQ-UC) – Applications
- António Pina (CCTC-UM) – Grid Support / Deployment tools
- Pedro Alberto (CF-UC) – Grid Support / Deployment tools