CCL Home


Software Community Operations

The Parrot Virtual File System

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 file on a remote file server:

% parrot_run vi /chirp/

Parrot "speaks" a variety of remote I/O services include HTTP, FTP, GridFTP, iRODS, CVMFS, and Chirp on behalf of ordinary programs. 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 almost any program without re-writing, re-linking, or re-installing.

Parrot is particularly useful for running batch jobs in large scale distributed systems. It is most widely used to provide access to high energy physics (HEP) software stacks via the global CVMFS filesystem developed at CERN. Because Parrot views every operation on the filesystem, it can make arbitrary changes to an application's namespace. This allows it to function as a sandbox environment, a dependency tracing tool, virtual machine, and more.

(Note that Parrot is very tightly coupled with the OS kernel. and so it is only available on Linux based operating systems.)

More Info

  • Download Parrot
  • Parrot User's Manual
  • Mailing List
  • Publications

    (Showing papers with tag parrot. See all papers instead.)