Parrot logo

The Parrot Virtual File System 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/server.nd.edu/mydata

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.)

Related Publications

  1. Conducting Reproducible Research with Umbrella: Tracking, Creating, and Preserving Execution Environments
    Haiyan Meng, Douglas Thain, Alexander Vyushkov, Matthias Wolf, and Anna Woodard
    In IEEE Conference on e-Science, 2016
    doi: 10.1109/eScience.2016.7870889
  2. A Case Study in Preserving a High Energy Physics Application with Parrot
    Haiyan Meng, Matthias Wolf, Peter Ivie, Anna Woodard, Michael Hildreth, and Douglas Thain
    In Journal of Physics: Conference Series (CHEP 2015), 2015
    doi: 10.1088/1742-6596/664/3/032022
  3. The Evolution of Global Scale Filesystems for Scientific Software Distribution
    Jakob Blomer, Predrag Buncic, Rene Meusel, Gerardo Ganis, Igor Sfiligoi, and Douglas Thain
    IEEE/AIP Computing in Science and Engineering, 2015
    doi: 10.1109/MCSE.2015.111
  4. Techniques for Preserving Scientific Software Executions: Preserve the Mess or Encourage Cleanliness?
    Douglas Thain, Peter Ivie, and Haiyan Meng
    In 12th International Conference on Digital Preservation (iPres), 2015
    doi: 10.7274/R0CZ353M
  5. An Invariant Framework for Conducting Reproducible Computational Science
    Haiyan Meng, Rupa Kommineni, Quan Pham, Robert Gardner, Tanu Malik, and Douglas Thain
    Journal of Computational Science, 2015
    doi: 10.1016/j.jocs.2015.04.012
  6. Umbrella: A Portable Environment Creator for Reproducible Computing on Clusters, Clouds, and Grids
    Haiyan Meng and Douglas Thain
    In Workshop on Virtualization Technologies in Distributed Computing (VTDC) at HPDC, 2015
    doi: 10.1145/2755979.2755982
  7. Opportunistic High Energy Physics Computing in User Space with Parrot
    Dillon Skeehan, Paul Brenner, Ben Tovar, Douglas Thain, Nil Valls, Anna Woodard, Matthew Wolf, Tessa Pearson, Sean Lynch, and Kevin Lannon
    In IEEE Symposium on Cluster, Cloud, and Grid Computing (CCGrid), 2014
    doi: 10.1109/CCGrid.2014.34
  8. Fine-Grained Access Control in the Chirp Distributed File System
    Patrick Donnelly and Douglas Thain
    In IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing, 2012
    doi: 10.1109/CCGrid.2012.128
  9. Attaching Cloud Storage to a Campus Grid Using Parrot, Chirp, and Hadoop
    Patrick Donnelly, Peter Bui, and Douglas Thain
    In IEEE International Conference on Cloud Computing Technology and Science, 2010
    doi: 10.1109/CloudCom.2010.74
  10. CDF Software Distribution on the Grid using Parrot
    Gabrielle Compostella, Simone Pagan Griso, Donatella Lucchesi, Igor Sfiligoi, and Douglas Thain
    In Computing in High Energy Physics, 2009
    doi: 10.1088/1742-6596/219/6/062009
  11. Chirp: A Practical Global Filesystem for Cluster and Grid Computing
    Douglas Thain, Christopher Moretti, and Jeffrey Hemmes
    Journal of Grid Computing, 2009
    doi: 10.1007/s10723-008-9100-5
  12. Efficient Access to Many Small Files in a Filesystem for Grid Computing
    Douglas Thain and Christopher Moretti
    In IEEE Grid Computing, 2007
    doi: 10.1109/GRID.2007.4354139
  13. Grid Deployment of Legacy Bioinformatics Applications with Transparent Data Access
    Christophe Blanchet, Remi Mollon, Douglas Thain, and Gilbert Deleage
    In IEEE Grid Computing, 2006
    doi: 10.1109/ICGRID.2006.311006
  14. Transparent Access to Grid Resources for User Software
    Sander Klous, Jamie Frey, Se-Chang Son, Douglas Thain, Alain Roy, Miron Livny, and Jo Brand
    Concurrency and Computation: Practice and Experience, 2006
    doi: 10.1002/cpe.961
  15. Using Condor Glide-Ins and Parrot to Move from Dedicated Resources to the Grid
    Stefano Belforte, Matthew Normal, Subir Sarkar, Ifor Sfiligoi, Douglas Thain, and Frank Wuerthwein
    Lecture Notes in Informatics, 2006
  16. Transparently Distributing CDF Software with Parrot
    Douglas Thain, Christopher Moretti, and Igor Sfiligoi
    In Computing in High Energy Physics, 2006
  17. The Consequences of Decentralized Security in a Cooperative Storage System
    Douglas Thain, Christopher Moretti, Paul Madrid, Phil Snowberger, and Jeff Hemmes
    In Workshop on Security in Storage at IEEE FAST, 2005
    doi: 10.1109/SISW.2005.11
  18. Separating Abstractions from Resources in a Tactical Storage System
    Douglas Thain, Sander Klous, Justin Wozniak, Paul Brenner, Aaron Striegel, and Jesus Izaguirre
    In IEEE/ACM Supercomputing, 2005
    doi: 10.1109/SC.2005.64
  19. Identity Boxing: A New Technique for Consistent Global Identity
    Douglas Thain
    In IEEE/ACM Supercomputing, 2005
    doi: 10.1109/SC.2005.34
  20. Parrot: An Application Environment for Data-Intensive Computing
    Douglas Thain and Miron Livny
    Scalable Computing: Practice and Experience, 2005
  21. Poster: Identity Boxing: Secure User-Level Containment for the Grid
    Douglas Thain
    2005
    isbn: 10.1109/HPDC.2005.1520984
  22. Parrot: Transparent User-Level Middleware for Data Intensive Computing
    Douglas Thain and Miron Livny
    In Workshop on Adaptive Grid Middleware at PACT, 2003