Menu

Home

Daniel Kunkle

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

Overview

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 time more space without significantly increasing system cost.

To compensate for the lower bandwidth of disks, Roomy uses of 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 library for C/C++. It provides a small number of simple data structures (arrays, 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.

Documentation

Roomy Installation Instructions

Roomy Tutorial: The tutorial demonstrates the Roomy library using several solutions to the pancake sorting problem. In particular, we will be calculating the integer sequences given in the Wikipedia article on pancake sorting. The solutions are calculated with three different implementations of breadth-first search, using the RoomyList, RoomyArray, or RoomyHashTable.

Roomy API: The programming interface for the Roomy library.

Other Resources


Related

Wiki: RoomyAPI
Wiki: RoomyInstall
Wiki: RoomyUserGuide

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.