RAMA: Easy Access to a High-Bandwidth Massively Parallel File System
 
Ethan L. Miller
University of Maryland Baltimore County

Randy H. Katz
University of California at Berkeley

Abstract
 
Massively parallel file systems must provide high
bandwidth file access to programs running on their
machines. Most accomplish this goal by striping files
across arrays of disks attached to a few specialized
I/O nodes in the massively parallel processor (MPP).
This arrangement requires programmers to give the
file system many hints on how their data is to be laid
out on disk if they want to achieve good performance.
Additionally, the custom interface makes massively
parallel file systems hard for programmers to use and
difficult to seamlessly integrate into an environment
with workstations and tertiary storage.

The RAMA file system addresses these problems by
providing a massively parallel file system that does
not need user hints to provide good performance.
RAMA takes advantage of the recent decrease in
physical disk size by assuming that each processor in
an MPP has one or more disks attached to it. Hashing
is then used to pseudo-randomly distribute data to all
of these disks, insuring high bandwidth regardless of
access pattern. Since MPP programs often have many
nodes accessing a single file in parallel, the file sys-
tem must allow access to different parts of the file
without relying on a particular node. In RAMA, a file
request involves only two nodes - the node making
the request and the node on whose disk the data is
stored. Thus, RAMA scales well to hundreds of pro-
cessors. Since RAMA needs no layout hints from applications,
it fits well into systems where users cannot (or will not)
provide such hints. Fortunately, this flexibility does not
cause a large loss of performance. RAMA's simulated performance
is within 10-15% of the optimum performance of a similarly-sized
striped file system, and is a factor of 4 or more better than
a striped file system with poorly laid out data.


Download the full text of this paper in ASCII (47,534 bytes) and POSTSCRIPT (752,896 bytes) form.

To Become a USENIX Member, please see our Membership Information.