Distributed resources are becoming an increasingly important platform for computation. Both clusters of workstations and Computational Grids provide a way to aggregate the computational power supplied by collections of resources to provide execution performance for large-scale and resource-intensive computations.
Achieving application performance on such platforms can be challenging. Contention for shared resources has considerable impact on the performance such resources can deliver to an application. In addition, the heterogeneity of the underlying resources makes performance hard to predict. Currently, large-scale applications may achieve performance by careful staging of data and/or computation, as well as scheduling of application tasks and communication. However, for the ordinary user seeking application performance, such measures are often impractical and/or infeasible. The challenge for application developers and users is to develop applications which can be scheduled at execution-time to achieve performance under ordinary conditions, and in shared and dynamic production computational environments.
Experience shows that adaptive techniques are a promising way to schedule applications in Grid and clustered environments [9]. In this paper, we use such techniques to develop an application scheduler for the data transfer phase of the SARA application, a distributed data image acquisition application developed at JPL and SDSC. In Section 2, we briefly outline the basic concepts behind AppLeS application schedulers. In Section 3, we describe an AppLeS application scheduler for a simplified version of SARA, and in Section 4, we provide performance results. Some relevant work is discussed in Section 5, and in Section 6, we touch on future work by outlining an ``end-to-end'' SARA AppLeS and our plans to use it as a template for the larger class of distributed data applications of which SARA is a member.