Abstract Metacomputing is the seamless application of geographically-separated distributed computing resources to user applications. We consider the scheduling of metaapplications; applications consisting of multiple components that may communicate and interact over the course of the application. Components may be schedulable computations, remote servers or databases, remote instruments, humans-in-the-loop, etc. We divide metaapplications into three categories -- concurrent, parallel, and pipeline (below). Concurrent is the classic meta-application in which a set of components each running in a single site are executing concurrently and exchanging data. Parallel is a special case of concurrent in which a component is replicated and distributed across multiple sites. Pipeline applications consist of components connected in a chain-like fashion. The scheduling of meta-applications across multiple sites, called metascheduling, is a complex problem especially when the network capacity is a...
Jon B. Weissman