Distributed Computing Laboratory

Emory University


DCL Home » Unibus



Project summary

The full potential of grids and metacomputing systems is yet unrealized, partly due to challenges resulting from heterogeneity, deployment issues, and dynamicity. This research proposes novel strategies for unifying and dynamically conditioning diverse resources. Our approach is based on client-centric overlay software that provides unified access to diverse resources, complemented by runtime systems that substantially automate setup and configuration. The overlay unifies heterogeneous resources through service drivers or mediators that operate analogously to device drivers. New resources and variations in availability are handled through self-deployment of mediators and their service daemon counterparts, enabling the overlay to adaptively present applications with coherent aggregated projections of the underlying resources. Dynamic incorporation of new resources is facilitated via automated environment conditioning that uses deployment descriptors in conjunction with site-specific data to prepare platforms for execution.

The proposed framework, termed Unibus, will be designed to accommodate multiple resource classes, ranging in access type from virtualization systems to interactive shells, job schedulers, and metaschedulers. Unification abstractions will be based on identifying commonalities within resource classes. To provide coherence across resource classes (in cases where it is meaningful), this project will investigate: (1) successive conditioning, to reconcile differences across resource classes with differing levels of functionality; and (2) emulation, to map selected features of one resource class to be compatible with another at the same level. Dynamic environment conditioning will build upon open standards in autonomic software deployment, with specifications of application structure and dependencies driving platform preparation with assistance from mediators and service daemons. In the context of metacomputing, environment conditioning can be used to delegate to software numerous tasks that are currently the responsibility of clients and/or providers – such as verifying or configuring consistent versions of libraries, staging application executables and data files, setting up execution environments, retrieval of output, and post-execution cleanup. Interestingly, the runtime system that supports conditioning can also deploy the Unibus overlay itself on new resources that become available, thus self-spreading adaptively to changes in application needs or resource availability.