Parrot Mascot


Note: This page is no longer maintained.
Parrot has moved to The University of Notre Dame

Parrot is a tool for attaching existing programs to remote I/O systems through the filesystem interface. For example, here's how to use Parrot with vi in order to edit a remote file:

% parrot vi /anonftp/
Parrot "speaks" a variety of remote I/O services on behalf of ordinary programs that are written to the POSIX interface. It works by trapping a program's system calls through the ptrace debugging interface, and replacing them with remote I/O operations as desired. Parrot can be installed and operated by any user without special privileges or kernel changes and can be applied to any program without re-writing, re-linking, or re-installing. (Exception: no setuid programs.)

Parrot is especially useful in distributed systems where one has access to many CPUs, but no consistent I/O system. Packaged with Parrot is Chirp, an easy-to-use I/O server that allows ordinary users to establish and reconfigure custom distributed file systems without the assistance of an administrator.

Here is a diagram that gives an overview of Parrot: Diagram of Parrot

Online Documentation

  • Parrot User's Manual
  • Known Bugs Page
  • Mailing List Archives: parrot-announce - parrot-discuss
  • Slides from lecture: Parrot Slides
  • Publications

  • Douglas Thain and Miron Livny, Parrot: Transparent User-Level Middleware for Data-Intensive Computing, Workshop on Adaptive Grid Middleware, New Orleans, Louisiana, September 2003.
  • Getting Help

    Parrot is an ongoing research project pursued by Douglas Thain and other members of the Condor Project. If you are making use of Parrot, please drop us a brief note, telling us who you are and how you are using Parrot. This will help us to judge interest, select new features, as well as write papers and generate research results.

    If you encounter any bugs in Parrot, we would like to know. However, please read the manual, known bugs page, and mailing list archive first. If your problem is new, please post it to the parrot-discuss mailing list. We may or may not be able to fix reported bugs, subject to our time, resource, and interest limits. Of course, you are welcome to investigate bugs on your own.

    parrot-discuss (archive) (subscribe) is a mailing list for general questions and discussion about using and applying Parrot. parrot-announce (archive) (subscribe) is a low-traffic list used solely for announcements of software releases and bug fixes.


  • Binaries for Red Hat Linux 9: parrot-linux-0_9_15.tar.gz
  • Current Source: parrot-0_9_15.tar.gz

  • Older Versions: 0_9_14 - 0_9_13 - 0_9_12 - 0_9_11 - 0_9_10 - 0_9_9 - 0_9_8
  • Why is it Called Parrot?

    Most of the tools developed by the Condor Project are named after birds. Like the bird, the Parrot software "speaks" multiple I/O languages. There are a number of other projects named Parrot, such as the Perl6 Parrot Project, the ESPRIT Parrot Project, and the California Parrot Project, Incidentally, Parrot evolved out of an older tool known as the Pluggable File System, so you may find many references to PFS in the code and older documents.