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