STARFISH: Simulation Tool for Advanced Research in File Systems (1994-2001)
This project is no longer active; this page is no longer updated.
Related projects:
[Armada],
[CHARISMA],
[Galley],
[Parallel-I/O],
[RAPID-Transit]
Related keywords:
[pario],
[software]
Summary
Large parallel computing systems, especially those used for
scientific computation, consume and produce huge amounts of data. To
provide the necessary semantics for parallel processes accessing a
file, and to provide the necessary throughput for an application
working with terabytes of data, requires a multiprocessor file system.
In the STARFISH project we developed the concept of
disk-directed I/O, in which the application process requested a
large parallel data transfer to or from a parallel file, and then the
file system arranged the transfer of information between disks and
memory in a way that suited the disks' own timing. The results show
strong performance benefits--- but only if suitable interfaces allow
the application to make such requests known to the file system at a
high level. The most complete paper is
[kotz:jdiskdir].
An overview was presented in a 1994 talk at NASA
[video].
STARFISH is a simulator for experimenting with concepts in
parallel file systems. It is based on Eric Brewer's Proteus
simulator from MIT, version 3.01, and runs only on (MIPS-based)
DECstations.
The name: The name STARFISH is an acronym (Simulation Tool
for Advanced Research in File Systems), but it fits with the maritime
theme of the Proteus simulator on which it is based (Proteus was a
Greek god of the sea).
Download
Warning: I provide the code as-is, with little cleanup
or added documentation. Some of the code is out-of-date and may have
bugs. Other parts are incomplete. Many of the analysis scripts are
fragile. The code is constantly evolving, and new public releases may
be rare. But many people have asked me for it, so here it
is.
See other warnings in the README file.
Usage rules: You're welcome to look at the code and even try
to run it, but I really don't have time to help you out much. If you
publish any results based on this simulator, please cite me and
provide the URL for this page.
Copying rules: This package may be freely copied as long as
it is kept intact with my name on it. You may not sell it for
commercial purposes (hah! as if anyone would pay for it.) Please
send me a note if you have a copy of this code, so I can keep track of
how many copies there are, send you email about new versions, and so
forth. Please ask me before you distribute any modified version.
Version 3 (October 1996):
Release 3.0 (tgz):
- starfish/proteus (the Proteus simulator and tools, with my changes)
- starfish/src (the source code, and compilation director)
- starfish/src/run (the scripts necessary to build and run my experiments)
Version 2 (January 1995):
Sources (tgz):
- starfish/README
- starfish/bin (some new or changed executables from proteus)
- starfish/PAPERS.bib (bibtex for related papers)
- starfish/proteus (the proteus engine code, with my changes)
- starfish/src (the source code, and compilation director)
- starfish/stats.patch (patches to proteus 'stats' program)
Experimental configurations and raw data (tgz):
- starfish/README
- starfish/run (the place where experiments are run)
Figures and data (tgz)
for kotz:jdiskdir:
- starfish/README
- starfish/figs (figures and data from the kotz:jdiskdir paper)
Note re: kotz:diskdir
The Version 2 code evolved after the experiments in some of those
papers were run; in particular, the
OSDI results were based
on an earlier, buggier version of iopfs-cache. See the
TR version of that
paper for correct results.
People
David Kotz.
Funding
This project was supported largely by NSF award CCR-940919.
The views and conclusions contained on this site and in its documents
are those of the authors and should not be interpreted as necessarily
representing the official position or policies, either expressed or
implied, of the sponsor(s). Any mention of specific companies or
products does not imply any endorsement by the authors or by the
sponsor(s).
Papers tagged 'starfish'
[Also available in BibTeX]
Papers are listed in reverse-chronological order.
Follow updates with RSS.
- 2001:
- 1997:
- 1996:
- 1995:
-
Apratim Purakayastha, Carla Schlatter Ellis, and David Kotz.
ENWRICH: A Compute-Processor Write Caching Scheme for Parallel File Systems.
Technical Report number CS-1995-22, Dept. of Computer Science, Duke University, October 1995.
[Details]
-
David Kotz.
Expanding the Potential for Disk-Directed I/O.
Proceedings of the IEEE Symposium on Parallel and Distributed Processing (SPDP), pages 490–495.
IEEE, San Antonio, TX, October 1995.
doi:10.1109/SPDP.1995.530723.
[Details]
-
David Kotz.
Interfaces for Disk-Directed I/O.
Technical Report number PCS-TR95-270, Dartmouth Computer Science, September 1995.
[Details]
-
David Kotz.
Disk-directed I/O for an Out-of-core Computation.
Proceedings of the IEEE International Symposium on High Performance Distributed Computing (HPDC), pages 159–166.
IEEE, August 1995.
doi:10.1109/HPDC.1995.518706.
[Details]
-
David Kotz and Ting Cai.
Exploring the use of I/O Nodes for Computation in a MIMD Multiprocessor.
Proceedings of the IPPS Workshop on Input/Output in Parallel and Distributed Systems (IOPADS), pages 78–89.
ACM, April 1995.
[Details]
-
David Kotz.
Expanding the Potential for Disk-Directed I/O.
Technical Report number PCS-TR95-254, Dartmouth Computer Science, March 1995.
[Details]
-
David Kotz.
Disk-directed I/O for an Out-of-core Computation.
Technical Report number PCS-TR95-251, Dartmouth Computer Science, January 1995.
[Details]
- 1994:
-
David Kotz.
HP 97560 disk simulation module.
Used in STARFISH and several other research projects, 1994.
[Details]
-
David Kotz.
Disk-directed I/O for MIMD Multiprocessors.
Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI), pages 61–74.
USENIX Association, November 1994.
Updated as Dartmouth TR PCS-TR94-226 on November 8, 1994.
Honorable mention as “Best Paper”.
[Details]
-
David Kotz.
Disk-directed I/O for MIMD Multiprocessors.
Bulletin of the IEEE Technical Committee on Operating Systems and Application Environments, pages 29–42.
IEEE, Autumn 1994.
[Details]
-
David Kotz and Ting Cai.
Exploring the use of I/O Nodes for Computation in a MIMD Multiprocessor.
Technical Report number PCS-TR94-232, Dartmouth Computer Science, October 1994.
Revised 2/20/95.
[Details]
-
David Kotz.
Disk-directed I/O for MIMD Multiprocessors.
Technical Report number PCS-TR94-226, Dartmouth Computer Science, July 1994.
Revised November 8, 1994.
[Details]
-
David Kotz, Song Bac Toh, and Sriram Radhakrishnan.
A Detailed Simulation Model of the HP 97560 Disk Drive.
Technical Report number PCS-TR94-220, Dartmouth Computer Science, July 1994.
[Details]
[Kotz research]