The Galley Parallel File System

Based on the results of several workload characterization studies we performed, we have designed and implemented Galley, a new parallel file system that is intended to meet the needs of parallel scientific applications.

Galley was designed to run on networks of workstations (NOWs) or parallel supercomputers. It currently runs on networks of IBM RS/6000s (such as our FLEET Lab) and the IBM SP-2 parallel supercomputer (such as Babbage at NASA Ames Research Center).

Galley was implemented using a model of distinct Compute Processors and I/O Processors. That is, the nodes in the network or parallel machine are partitioned into two sets: one that runs users' applications and one that runs Galley's I/O servers. Even though most NOWs, and some parallel machines, have disks on each node, Galley uses the distinct CP/IOP model since it leads to more predictable performance and reduces the performance impact that one user's application may have on another.

To use the Galley Parallel File System, a user's application must be linked with the Galley runtime library. The runtime library establishes connections with the system's I/O servers, and handles all communication between the client's code and the servers. When an application makes a call to a Galley routine, the runtime library converts the request into an internal format, and passes it on to the I/O servers via message passing. The runtime library then controls the flow of data from the IOP to the application's address space, or vice versa.

Features

More Information

Papers

Galley makes no pretense to be anything but an experimental file system, and is missing many of the features that would be required in a 'production' file system. Most importantly, Galley does not provide any sort of security or support for recovery from IOP crashes ( i.e., fsck).

Source code

The full source code for Galley is now available for downloading. The code isn't as clean or as fully commented as I would have liked, but I don't have time to really do a good job on it.

I'm not planning to do any sort of support (unfortunately, this includes bugfixes), partly since I believe the non-competition clause of my new employment agreement will prohibit it, and partly because I don't expect to have time. If somebody else here at Dartmouth takes up the Galley banner, someone will make an announcement to that effect.

Finally, if you find this code useful please let me know.


Nils A. Nieuwejaar
nils@cs.dartmouth.edu
Last modified Monday, September 2, 1996