This project addresses issues of cyber-infrastructure usability, a key determinant of CI effectiveness in advancing science and technology. Strategies to permit flexibility in mapping applications onto different resource classes are the focus of this research. The approach adopted is based on the concept of software adapters that express application requirements and interactions in terms of the resource primitives available for a given execution, and correspondingly, condition the target platform environments with middleware to provide the functionality required by applications. The range of adaptations vary, from simple macro substitutions, to substitution of libraries, to programming paradigm transformations, to outsourcing execution of application segments through externally provided software services. On the resource side, conditioning may consist of soft-installation of needed libraries, setting environment variables, staging executables and data, and deploying runtime support software to assist application deployment.
The project will develop (1) the concept of a virtual execution platform that presents abstractions of application requirements and resource capabilities; (2) mechanisms for determining adjustments that are required for the application-platform combination for the given run; (3) adapters that provide different levels of matching and techniques for assembling and composing them; and (4) middleware for provisioning environmental infrastructure on target platforms to ensure that all execution-dependent needs are staged and deployed. This framework, termed ADAPT, is being designed to accommodate the major classes of S & E applications including parallel MPI programs, scientific scripts, and workflows. Execution platforms will include common cyber-infrastructure facilities such as IaaS and PaaS clouds, remotely accessed capability computers, local (personal) and shared (grid-based) clusters and similar resources.
The project is expected to provide insights into commonalities in different programming models and resource types in CI settings, and the developed middleware will permit greater flexibility in choosing CI platforms for S & E applications. By reconciling application and resource diversity in CI, this project will contribute steps towards realizing the vision of computing as a utility.