This project pursues the vision of a community that shares resources in an open manner. Similar to today's web publication and discovery of documents, computer applications, machine cycles, and databases can be announced openly and used by others worldwide.
A big issue in realizing this vision is to create facilities that help manage the diversity of available resources and adapt them to the users' needs. Thus, published software modules may be adapted to compose new application programs; discovered programs may be tuned to the user's platform; distributed applications may run at high performance, as they adapt to changing bandwidth and latency characteristics of the target environment. This project develops such facilities. Building on results of prior NSF support, an adaptive engine will dynamically improve the performance of distributed computer applications; it will adaptively compose software modules from components; and it will support computer applications that roam across discovered machine platforms. These components are being integrated in the iShare Internet sharing system, which provides the environment for resource publication, discovery, and remote use.
Components of this system are being created in related NSF projects, which synergistically complement the present project.
This work addresses a fundamental problem in computer system and software design: optimal design decisions are often impossible because insufficient information is available at design-time. The adaptive engine moves design decisions to the time application software executes, when this information becomes available.
The project is expected to yield significant performance improvements of the involved compilers, composers, and application software, substantially facilitating the way the involved resources can be shared by the global community.