Deploying Complex Applications in Unfriendly Distributed Systems with Parrot
Douglas Thain · 2004
Ordinary applications struggle to benefit from distributed computing. Most applications are designed for the safe confines of a single workstation and are not prepared to encounter the new interfaces and failures that are endemic to distributed systems. To solve this problem, we present Parrot, an interposition agent that connects standard, unmodified applications to distributed systems. Parrot makes use of the debugging interface to trap and modify an application's system calls. This interface is heavyweight but foolproof: Parrot can operate on any program, script, or multi-process conglomerate. We explore how Parrot can be used to attach a variety of remote I/O protocols and we explain why a new protocol, Chirp, is necessary to support real applications. We present a case study of SP5, a high-energy physics application that requires distributed computing to achieve its production goals. Using Parrot, we successfully deploy SP5 into a fault-prone distributed system.