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/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
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
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.)
Parrot User's Manual
(Showing papers with tag parrot. See all papers instead.)
Haiyan Meng, Douglas Thain, Alexander Vyushkov, Matthias Wolf, and Anna Woodard,
Conducting Reproducible Research with Umbrella: Tracking, Creating, and Preserving Execution Environments,
IEEE Conference on e-Science, October, 2016.
Jakob Blomer, Predrag Buncic, Rene Meusel, Gerardo Ganis, Igor Sfiligoi and Douglas Thain,
The Evolution of Global Scale Filesystems for Scientific Software Distribution,
IEEE/AIP Computing in Science and Engineering, 17(6), pages 61-71, December, 2015. DOI: 10.1109/MCSE.2015.111
Haiyan Meng, Rupa Kommineni, Quan Pham, Robert Gardner, Tanu Malik and Douglas Thain,
An Invariant Framework for Conducting Reproducible Computational Science,
Journal of Computational Science, 9, pages 137-142, July, 2015. DOI: 10.1016/j.jocs.2015.04.012
Dillon Skeehan, Paul Brenner, Ben Tovar, Douglas Thain, Nil Valls, Anna Woodard, Matthew Wolf, Tessa Pearson, Sean Lynch, and Kevin Lannon,
Opportunistic High Energy Physics Computing in User Space with Parrot,
IEEE Symposium on Cluster, Cloud, and Grid Computing (CCGrid), pages 170-175, May, 2014. DOI: 10.1109/CCGrid.2014.34
Sander Klous, Jamie Frey, Se-Chang Son, Douglas Thain, Alain Roy, Miron Livny, and Jo van den Brand,
Transparent Access to Grid Resources for User Software,
Concurrency and Computation: Practice and Experience, 18(7), pages 787-801, June, 2006. DOI: 10.1002/cpe.961
Stefano Belforte, Matthew Normal, Subir Sarkar, Ifor Sfiligoi, Douglas Thain, Frank Wuerthwein,
Using Condor Glide-Ins and Parrot to Move from Dedicated Resources to the Grid,
Lecture Notes in Informatics, 81, pages 285-292, March, 2006.
Douglas Thain, Sander Klous, Justin Wozniak, Paul Brenner, Aaron Striegel, and Jesus Izaguirre,
Separating Abstractions from Resources in a Tactical Storage System,
IEEE/ACM Supercomputing, pages 55-67, November, 2005. DOI: 10.1109/SC.2005.64