Roomy: A C/C++ Library for Parallel Disk-based Computation

About

The goal of Roomy is to allow programmers to use disk as the main working
memory of a computation, instead of RAM. This provides thousands of times more
space without significantly increasing system cost.

To compensate for the lower bandwidth of disks, Roomy uses many disks in
parallel. This can be multiple disks attached to a single shared-memory system,
a cluster, or a storage area network (SAN). To compensate for the significantly
higher latency of disks, Roomy delays random access operations and performs
them efficiently in batch.

Roomy is implemented as a C/C++ library. It provides a small number of simple
data structures (arrays, unordered lists, and hash tables) and associated
operations. Roomy data structures are transparently distributed across many
disks, and the operations on these data structures are transparently
parallelized across the many compute nodes of a cluster. All aspects of
parallelism and remote I/O are hidden within the Roomy library.