home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / os / research / 886 < prev    next >
Encoding:
Internet Message Format  |  1992-09-01  |  112.5 KB

  1. Path: sparky!uunet!gatech!usenet.INS.CWRU.Edu!agate!darkstar.UCSC.EDU!osr
  2. From: dfk@wildcat.dartmouth.edu (David Kotz)
  3. Newsgroups: comp.os.research
  4. Subject: Parallel I/O bibliography
  5. Date: 1 Sep 1992 18:57:33 GMT
  6. Organization: Dartmouth College, Hanover, NH
  7. Lines: 2534
  8. Approved: comp-os-research@ftp.cse.ucsc.edu
  9. Message-ID: <180eetINNjp7@darkstar.UCSC.EDU>
  10. NNTP-Posting-Host: ftp.cse.ucsc.edu
  11. Originator: osr@ftp
  12.  
  13. BibTeX bibliography file: Parallel I/O
  14.  
  15. Third Edition
  16. August 27, 1992
  17.  
  18. This bibliography covers parallel I/O, with a significant emphasis on
  19. file systems rather than, say, network or graphics I/O. This includes
  20. architecture, operating systems, some algorithms, and some workload
  21. characterization. You can probably also see a bias toward prefetching
  22. and caching. This supercedes my older bibliographies. 
  23.  
  24. The entries are alphabetized by cite key. The emphasis is on including
  25. everything relevant, rather than selecting a few key articles of
  26. interest.  Thus, you probably don't want (or need) to read everything
  27. here. There are many repeated entries, in the sense that a paper is
  28. often published first as a TR, then in a conference, then in a
  29. journal.
  30.  
  31. NOTE: all comments are mine, and any opinions expressed there are mine
  32. only. In some cases I am simply restating the opinion or result
  33. obtained by the paper's authors, and thus even I might disagree with
  34. the statement. I keep most editorial comments to a minimum. 
  35.  
  36. Please let me know if you have any additions or corrections.  You may
  37. use the bibliography (and copy it around) as you please except for
  38. publishing it as a whole, since the compilation is mine.
  39.  
  40. Please leave this header on the collection; BibTeX won't mind. 
  41.  
  42. This bibliography (and many others) is archived in ftp.cse.ucsc.edu:pub/bib.
  43.  
  44. David Kotz
  45. Assistant Professor
  46. Mathematics and Computer Science
  47. Dartmouth College
  48. 6188 Bradley Hall
  49. Hanover NH 03755-3551
  50. @string {email = "David.Kotz@Dartmouth.edu"} % have to hide this from bibtex
  51. -----------------------------------------------------------------------------
  52.  
  53. @InProceedings{abali:ibm370,
  54.   author = {B\"{u}lent Abali and Bruce D. Gavril and Richard W. Hadsell and
  55.   Linh Lam and Brion Shimamoto},
  56.   title = {{Many/370: A} Parallel Computer Prototype for {I/O} Intensive
  57.   Applications},
  58.   booktitle = {Sixth Annual Distributed-Memory Computer Conference},
  59.   year = {1991},
  60.   pages = {728--730},
  61.   keyword = {parallel I/O, multiprocessor file system},
  62.   comment = {Describes a parallel IBM/370, where they attach several small 370s
  63.   to a switch, and several disks to each 370. But they don't seem to have much
  64.   in the way of striping. [David.Kotz@Dartmouth.edu]}
  65. }
  66.  
  67. @Article{abu-safah:speedup,
  68.   author = {Walid Abu-Safah and Harlan Husmann and David Kuck},
  69.   title = {On {Input/Output} Speed-up in Tightly-coupled Multiprocessors},
  70.   journal = {IEEE Transactions on Computers},
  71.   year = {1986},
  72.   pages = {520--530},
  73.   keyword = {parallel I/O, I/O},
  74.   comment = {Also TR UIUCDCS-R-84-1182 from CS at UIUC. Derives formulas for
  75.   the speedup with and without I/O considered and with parallel software and
  76.   hardware format conversion. Considering I/O gives a more optimistic view of
  77.   the speedup of a program {\em assuming} that the parallel version can use its
  78.   I/O bandwidth as effectively as the serial processor. Concludes that, for a
  79.   given number of processors, increasing the I/O bandwaidth is the most
  80.   effective way to speed up the program (over the format conversion
  81.   improvements). [David.Kotz@Dartmouth.edu]}
  82. }
  83.  
  84. @InProceedings{alverson:tera,
  85.   author = {Robert Alverson and David Callahan and Daniel Cummings and Brian
  86.   Koblenz and Allan Porterfield and Burton Smith},
  87.   title = {The {Tera} Computer System},
  88.   booktitle = {1990 International Conference on Supercomputing},
  89.   year = {1990},
  90.   pages = {1--6},
  91.   keyword = {parallel architecture, MIMD, NUMA},
  92.   comment = {Interesting architecture. 3-d mesh of pipelined packet-switch
  93.   nodes, e.g., 16x16x16 is 4096 nodes, with 256 procs, 512 memory units, 256 I/O
  94.   cache units, and 256 I/O processors attached. 2816 remaining nodes are just
  95.   switching nodes. Each processor is 64-bit custom chip with up to 128
  96.   simultaneous threads in execution. It alternates between ready threads, with
  97.   a deep pipeline. Inter-instruction dependencies explicitly encoded by the
  98.   compiler, stalling those threads until the appropriate time. Each thread has
  99.   a complete set of registers! Memory units have 4-bit tags on each word, for
  100.   full/empty and trap bits. Shared memory across the network: NUMA.
  101.   [David.Kotz@Dartmouth.edu]}
  102. }
  103.  
  104. @TechReport{arendt:genome,
  105.   author = {James W. Arendt},
  106.   title = {Parallel Genome Sequence Comparison Using a Concurrent File System},
  107.   year = {1991},
  108.   number = {UIUCDCS-R-91-1674},
  109.   institution = {University of Illinois at Urbana-Champaign},
  110.   keyword = {parallel file system, parallel I/O, Intel iPSC/2},
  111.   comment = {Studies the performance of Intel CFS. Uses an application that
  112.   reads in a huge file of records, each a genome sequence, and compares each
  113.   sequence against a given sequence. Looks at cache performance, message
  114.   latency, cost of prefetches and directory reads, and throughput. He tries
  115.   one-disk, one-proc transfer rates. Because of contention with the directory
  116.   server on one of the two I/O nodes, it was faster to put all of the file on
  117.   the other I/O node. Striping is good for multiple readers though. Best access
  118.   pattern was interleaved, not segmented or separate files, because it avoided
  119.   disk seeks. Apparently the files are stored contiguously. Can get good
  120.   speedup by reading the sequences in big integral record sizes, from CFS,
  121.   using a load-balancing scheduled by the host. Contention for directory blocks
  122.   -- through single-node directory server. [David.Kotz@Dartmouth.edu]}
  123. }
  124.  
  125. @InProceedings{asbury:fortranio,
  126.   author = {Raymond K. Asbury and David S. Scott},
  127.   title = {{FORTRAN} {I/O} on the {iPSC/2}: Is there read after write?},
  128.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  129.   Applications},
  130.   year = {1989},
  131.   pages = {129--132},
  132.   keyword = {parallel I/O, hypercube, Intel iPSC/2, file access pattern}
  133. }
  134.  
  135. @InProceedings{baldwin:hyperfs,
  136.   author = {C. H. Baldwin and W. C. Nestlerode},
  137.   title = {A Large Scale File Processing Application on a Hypercube},
  138.   booktitle = {Fifth Annual Distributed-Memory Computer Conference},
  139.   year = {1990},
  140.   pages = {1400-1404},
  141.   keyword = {multiprocessor file system, file access pattern, parallel I/O,
  142.   hypercube},
  143.   comment = {Census-data processing on an nCUBE/10 at USC. Their program uses
  144.   an interleaved pattern, which is like lps or gw with multi-record records
  145.   (i.e., the application does its own blocking). Shifted to asynchronous I/O to
  146.   do OBL manually. [David.Kotz@Dartmouth.edu]}
  147. }
  148.  
  149. @TechReport{barak:hfs,
  150.   author = {Amnon Barak and Bernard A. Galler and Yaron Farber},
  151.   title = {A Holographic File System for a Multicomputer with Many Disk Nodes},
  152.   year = {1988},
  153.   month = {May},
  154.   number = {88-6},
  155.   institution = {Dept. of Computer Science, Hebrew University of Jerusalem},
  156.   keyword = {parallel I/O, hashing, reliability, disk shadowing},
  157.   comment = {Describes a file system for a distributed system that scatters
  158.   records of each file over many disks using hash functions. The hash function
  159.   is known by all processors, so no one processor must be up to access the
  160.   file. Any portion of the file whose disknode is available may be accessed.
  161.   Shadow nodes are used to take over for nodes that go down, saving the info
  162.   for later use by the proper node. Intended to easily parallelize read/write
  163.   accesses and global file operations, and to increase file availability.
  164.   [David.Kotz@Dartmouth.edu]}
  165. }
  166.  
  167. @InProceedings{bell:physics,
  168.   author = {Jean L. Bell},
  169.   title = {A Specialized Data Management System for Parallel Execution of
  170.   Particle Physics Codes},
  171.   booktitle = {ACM SIGMOD Conference},
  172.   year = {1988},
  173.   pages = {277--285},
  174.   keyword = {file access pattern, disk prefetch, file system},
  175.   comment = {A specialized database system for particle physics codes. Valuable
  176.   for its description of access patterns and subsequent file access
  177.   requirements. Particle-in-cell codes iterate over timesteps, updating the
  178.   position of each particle, and then the characteristics of each cell in the
  179.   grid. Particles may move from cell to cell. Particle update needs itself and
  180.   nearby gridcell data. The whole dataset is too big for memory, and each
  181.   timestep must be stored on disk for later analysis anyway. Regular file
  182.   systems are inadequate: specialized DBMS is more appropriate. Characteristics
  183.   needed by their application class: multidimensional access (by particle type
  184.   or by location, i.e., multiple views of the data), coordination between grid
  185.   and particle data, coordination between processors, coordinated access to
  186.   meta-data, inverted files, horizontal clustering, large blocking of data,
  187.   asynchronous I/O, array data, complicated joins, and prefetching according to
  188.   user-prespecified order. Note that many of these things can be provided by a
  189.   file system, but that most are hard to come by in typical file systems, if
  190.   not impossible. Many of these features are generalizable to other
  191.   applications. [David.Kotz@Dartmouth.edu]}
  192. }
  193.  
  194. @InProceedings{benner:pargraphics,
  195.   author = {Robert E. Benner},
  196.   title = {Parallel Graphics Algorithms on a 1024-Processor Hypercube},
  197.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  198.   Applications},
  199.   year = {1989},
  200.   pages = {133--140},
  201.   keyword = {hypercube, graphics, parallel algorithms, parallel I/O},
  202.   comment = {About using the nCUBE/10's RT Graphics System. They were
  203.   frustrated by an unusual mapping from the graphics memory to the display, a
  204.   shortage of memory on the graphics nodes, and small message buffers on the
  205.   graphics nodes. They wrote some algorithms for collecting the columns of
  206.   pixels from the hypercube nodes, and routing them to the appropriate graphics
  207.   node. They also would have liked a better interconnection network between the
  208.   graphics nodes, at least for synchronization. [David.Kotz@Dartmouth.edu]}
  209. }
  210.  
  211. @InProceedings{bestavros:raid,
  212.   author = {Azer Bestavros},
  213.   title = {{IDA}-Based Redundant Arrays of Inexpensive Disks},
  214.   booktitle = {Proceedings of the First International Conference on Parallel
  215.   and Distributed Information Systems},
  216.   year = {1991},
  217.   pages = {2--9},
  218.   keyword = {RAID, disk array, reliability, parallel I/O},
  219.   comment = {[Not with the RAID project.] Uses the Information Dispersal
  220.   Algorithm (IDA) to generate $n+m$ blocks from $n$ blocks, to tolerate $m$
  221.   disk failures; all of the data from the $n$ blocks is hidden in the $n+m$
  222.   blocks. [David.Kotz@Dartmouth.edu]}
  223. }
  224.  
  225. @InProceedings{bitton:schedule,
  226.   author = {Dina Bitton},
  227.   title = {Arm Scheduling in Shadowed Disks},
  228.   booktitle = {Proceedings of IEEE Compcon},
  229.   year = {1989},
  230.   month = {Spring},
  231.   pages = {132--136},
  232.   keyword = {parallel I/O, disk shadowing, reliability, mirrored disk, disk
  233.   seek time},
  234.   comment = {Goes further than bitton:shadow. Uses simulation to verify results
  235.   from that paper, which were expressions for the expected seek distance of
  236.   shadowed disks, using shortest-seek-time arm scheduling. Problem is her
  237.   assumption that arm positions stay independent, in the face of correlating
  238.   effects like writes, which move all arms to the same place. Simulations match
  239.   model only barely, and only in some cases. Anyway, shadowed disks can improve
  240.   performance for workloads more than 60 or 70\% reads. [David.Kotz@Dartmouth.edu]}
  241. }
  242.  
  243. @InProceedings{bitton:shadow,
  244.   author = {D. Bitton and J. Gray},
  245.   title = {Disk Shadowing},
  246.   booktitle = {14th International Conference on Very Large Data Bases},
  247.   year = {1988},
  248.   pages = {331--338},
  249.   keyword = {parallel I/O, disk shadowing, reliability, mirrored disk, disk
  250.   seek time},
  251.   comment = {Also TR UIC EECS 88-1 from Univ of Illinois at Chicago. Shadowed
  252.   disks are mirroring with more than 2 disks. Writes to all disks, reads from
  253.   one with shortest seek time. Acknowledges but ignores problem posed by
  254.   lo:disks. Also considers that newer disk technology does not have linear seek
  255.   time $(a+bx)$ but rather $(a+b\sqrt{x})$. Shows that with either seek
  256.   distribution the average seek time for workloads with at least 60\% reads
  257.   decreases in the number of disks. See also bitton:schedule.
  258.   [David.Kotz@Dartmouth.edu]}
  259. }
  260.  
  261. @Article{boral:bubba,
  262.   author = {Haran Boral and William Alexander and Larry Clay and George
  263.   Copeland and Scott Danforth and Michael Franklin and Brian Hart and Marc
  264.   Smith and Patrick Valduriez},
  265.   title = {Prototyping {Bubba}, a Highly Parallel Database System},
  266.   journal = {IEEE Transactions on Knowledge and Data Engineering},
  267.   year = {1990},
  268.   month = {March},
  269.   volume = {2},
  270.   number = {1},
  271.   keyword = {parallel I/O, database, disk caching},
  272.   comment = {More recent than copeland:bubba, and a little more general. This
  273.   gives few details, and doesn't spend much time on the parallel I/O. Bubba
  274.   does use parallel independent disks, with a significant effort to place data
  275.   on the disks, and do the work local to the disks, to balance the load and
  276.   minimize interprocessor communication. Also they use a single-level store
  277.   (i.e., memory-mapped files) to improve performance of their I/O system,
  278.   including page locking that is assisted by the MMU. The OS has hooks for the
  279.   database manager to give memory-management policy hints.
  280.   [David.Kotz@Dartmouth.edu]}
  281. }
  282.  
  283. @InProceedings{boral:critique,
  284.   author = {H. Boral and D. {DeWitt}},
  285.   title = {Database machines: an idea whose time has passed?},
  286.   booktitle = {Proceedings of the Fourth International Workshop on Database
  287.   Machines},
  288.   year = {1983},
  289.   pages = {166--187},
  290.   publisher = {Springer-Verlag},
  291.   keyword = {file access pattern, parallel I/O, I/O, database machine},
  292.   comment = {Improvements in I/O bandwidth crucial for supporting database
  293.   machines, otherwise highly parallel DB machines are useless (I/O bound). Two
  294.   ways to do it: 1) synchronized interleaving by using custom controller and
  295.   regular disks to read/write same track on all disks, which speeds individual
  296.   accesses. 2) use very large cache (100-200M) to keep blocks to re-use and to
  297.   do prefetching. [David.Kotz@Dartmouth.edu]}
  298. }
  299.  
  300. @InProceedings{bradley:ipsc2io,
  301.   author = {David K. Bradley and Daniel A. Reed},
  302.   title = {Performance of the {Intel iPSC/2} Input/Output System},
  303.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  304.   Applications},
  305.   year = {1989},
  306.   pages = {141--144},
  307.   keyword = {hypercube, parallel I/O, Intel},
  308.   comment = {Some measurements and simulations of early CFS performance. Looks
  309.   terrible, but they disclaim that it is a beta version of the first CFS. They
  310.   determined that the disks are the bottleneck. But this may just imply that
  311.   they need more disks. Their parallel synthetic applications had each process
  312.   read a separate file. Files were too short (16K??). [David.Kotz@Dartmouth.edu]}
  313. }
  314.  
  315. @TechReport{brandwijn:dasd,
  316.   author = {Alexandre Brandwajn},
  317.   title = {Performance Benefits of Parallelism in Cached {DASD} Controllers},
  318.   year = {1988},
  319.   month = {November},
  320.   number = {UCSC-CRL-88-30},
  321.   institution = {Computer Research Laboratory, UC Santa Cruz},
  322.   keyword = {parallel I/O, disk caching, disk hardware},
  323.   comment = {Some new DASD products with caches overlap cache hits with
  324.   prefetch of remainder of track into cache. They use analytical model to
  325.   evaluate performance of these. They find performance improvements of 5-15
  326.   percent under their assumptions. [David.Kotz@Dartmouth.edu]}
  327. }
  328.  
  329. @InProceedings{browne:io-arch,
  330.   author = {J. C. Browne and A. G. Dale and C. Leung and R. Jenevein},
  331.   title = {A Parallel Multi-Stage {I/O} Architecture with Self-managing Disk
  332.   Cache for Database Management Applications},
  333.   booktitle = {Proceedings of the Fourth International Workshop on Database
  334.   Machines},
  335.   year = {1985},
  336.   month = {March},
  337.   publisher = {Springer-Verlag},
  338.   keyword = {parallel I/O, disk caching, database},
  339.   comment = {A fancy interconnection from procs to I/O processors, intended
  340.   mostly for DB applications, that uses cache at I/O end and a switch with
  341.   smarts. Cache is associative. Switch helps out in sort and join operations.
  342.   No page numbers. [David.Kotz@Dartmouth.edu]}
  343. }
  344.  
  345. @TechReport{cabrera:pario,
  346.   author = {Luis-Felipe Cabrera and Darrell D. E. Long},
  347.   title = {Swift: {Using} Distributed Disk Striping to Provide High {I/O} Data
  348.   Rates},
  349.   year = {1991},
  350.   number = {CRL-91-46},
  351.   institution = {UC Santa Cruz},
  352.   note = {To appear, {\em Computing Systems}},
  353.   keyword = {parallel I/O, disk striping, distributed file system},
  354.   comment = {See cabrera:swift, cabrera:swift2. Describes the performance of a
  355.   Swift prototype and simulation results. They stripe data over multiple disk
  356.   servers (here SPARC SLC with local disk), and access it from a SPARC2 client.
  357.   Their prototype gets nearly linear speedup for reads and asynchronous writes;
  358.   synchronous writes are slower. They hit the limit of the Ethernet and/or the
  359.   client processor with three disk servers. Adding another Ethernet allowed
  360.   them to go higher. Simulation shows good scaling. Seems like a smarter
  361.   implementation would help, as would special-purpose parity-computation
  362.   hardware. Good arguments for use of PID instead of RAID, to avoid a
  363.   centralized controller that is both a bottleneck and a single point of
  364.   failure. [David.Kotz@Dartmouth.edu]}
  365. }
  366.  
  367. @TechReport{cabrera:swift,
  368.   author = {Luis-Felipe Cabrera and Darrell D. E. Long},
  369.   title = {Swift: A Storage Architecture fo Large Objects},
  370.   year = {1990},
  371.   number = {UCSC-CRL-89-04},
  372.   institution = {U.C. Santa Cruz},
  373.   keyword = {parallel I/O, disk striping, distributed file system, multimedia},
  374.   comment = {See cabrera:swift. A brief outline of a design for a
  375.   high-performance storage system, designed for storing and retrieving large
  376.   objects like color video or visualization data at very high speed. They
  377.   distribute data over several ``storage agents'', which are some form of disk
  378.   or RAID. They are all connected by a high-speed network. A ``storage
  379.   manager'' decides where to spread each file, what kind of reliability
  380.   mechanism is used. User provides preallocation info such as size, reliability
  381.   level, data rate requirements, {\em etc.} [David.Kotz@Dartmouth.edu]}
  382. }
  383.  
  384. @InProceedings{cabrera:swift2,
  385.   author = {Luis-Felipe Cabrera and Darell D. E. Long},
  386.   title = {Exploiting Multiple {I/O} Streams to Provide High Data-Rates},
  387.   booktitle = {Proceedings of the 1991 Summer Usenix Conference},
  388.   year = {1991},
  389.   pages = {31--48},
  390.   keyword = {parallel I/O, disk striping, distributed file system, multimedia},
  391.   comment = {See also cabrera:swift. More detail than the other paper.
  392.   Experimental results from a prototype that stripes files across a distributed
  393.   file system. Gets almost linear speedup in certain cases. Much better than
  394.   NFS. Simulation to extend it to larger systems. Compare with DataMesh?
  395.   [David.Kotz@Dartmouth.edu]}
  396. }
  397.  
  398. @InProceedings{chen:eval,
  399.   author = {Peter Chen and Garth Gibson and Randy Katz and David Patterson},
  400.   title = {An Evaluation of Redundant Arrays of Disks using an {Amdahl 5890}},
  401.   booktitle = {Proceedings of the 1990 ACM Sigmetrics Conference on Measurement
  402.   and Modeling of Computer Systems},
  403.   year = {1990},
  404.   month = {May},
  405.   pages = {74--85},
  406.   keyword = {parallel I/O, RAID, disk array},
  407.   comment = {A experimental validation of the performance predictions of
  408.   patterson:raid, plus some extensions. Confirms that RAID level 5 (rotated
  409.   parity) is best for large read/writes, and RAID level 1 (mirroring) is best
  410.   for small reads/writes. [David.Kotz@Dartmouth.edu]}
  411. }
  412.  
  413. @InProceedings{chen:maxraid,
  414.   author = {Peter M. Chen and David A. Patterson},
  415.   title = {Maximizing Performance in a Striped Disk Array},
  416.   booktitle = {Proceedings of the 17th Annual International Symposium on
  417.   Computer Architecture},
  418.   year = {1990},
  419.   pages = {322--331},
  420.   keyword = {parallel I/O, RAID, disk striping},
  421.   comment = {Choosing the optimal striping unit, i.e., size of contiguous data
  422.   on each disk (bit, byte, block, {\em etc.}). A small striping unit is good for
  423.   low-concurrency workloads since it increases the parallelism applied to each
  424.   request, but a large striping unit can support high-concurrency workloads
  425.   where each independent request depends on fewer disks. They do simulations to
  426.   find throughput, and thus to pick the striping unit. They find equations for
  427.   the best compromise striping unit based on the concurrency and the disk
  428.   parameters, or on the disk parameters alone. Some key assumptions may limit
  429.   applicability, but this is not addressed. [David.Kotz@Dartmouth.edu]}
  430. }
  431.  
  432. @TechReport{chen:raid,
  433.   author = {Peter Chen and Garth Gibson and Randy Katz and David Patterson and
  434.   Martin Schulze},
  435.   title = {Two papers on {RAIDs}},
  436.   year = {1988},
  437.   month = {December},
  438.   number = {UCB/CSD 88/479},
  439.   institution = {UC Berkeley},
  440.   keyword = {parallel I/O, RAID, disk array},
  441.   comment = {Basically an updated version of patterson:raid and the
  442.   prepublished version of gibson:failcorrect. [David.Kotz@Dartmouth.edu]}
  443. }
  444.  
  445. @InProceedings{chervenak:raid,
  446.   author = {Ann L. Chervenak and Randy H. Katz},
  447.   title = {Performance of a Disk Array Prototype},
  448.   booktitle = {Proceedings of the 1991 ACM Sigmetrics Conference on Measurement
  449.   and Modeling of Computer Systems},
  450.   year = {1991},
  451.   pages = {188--197},
  452.   keyword = {parallel I/O, disk array, performance evaluation, RAID},
  453.   comment = {Measuring the performance of a RAID prototype with a Sun4/280, 28
  454.   disks on 7 SCSI strings, using 4 HBA controllers on a VME bus from the Sun.
  455.   The found lots of bottlenecks really slowed them down. Under Sprite, the
  456.   disks were the bottleneck for single disk I/O, single disk B/W, and string
  457.   I/O. Sprite was a bottleneck for single disk I/O and String I/O. The host
  458.   memory was a bottleneck for string B/W, HBA B/W, overall I/O, and overall
  459.   B/W. With a simpler OS, that saved on data copying, they did better, but were
  460.   still limited by the HBA, SCSI protocol, or the VME bus. Clearly they needed
  461.   more parallelism in the busses and control system. [David.Kotz@Dartmouth.edu]}
  462. }
  463.  
  464. @Manual{convex:stripe,
  465.   title = {{CONVEX UNIX} Programmer's Manual, Part I},
  466.   edition = {Eighth},
  467.   year = {1988},
  468.   month = {October},
  469.   organization = {CONVEX Computer Corporation},
  470.   address = {Richardson, Texas},
  471.   keyword = {parallel I/O, parallel file system, striping},
  472.   comment = {Implementation of striped disks on the CONVEX. Uses partitions of
  473.   normal device drivers. Similar to SunOS, VMS, and BBN TC2000's nX striping.
  474.   Kernel data structure knows about the interleaving granularity, the set of
  475.   partitions, sizes, etc. [David.Kotz@Dartmouth.edu]}
  476. }
  477.  
  478. @InProceedings{copeland:bubba,
  479.   author = {George Copeland and William Alexander and Ellen Boughter and Tom
  480.   Keller},
  481.   title = {Data Placement in {Bubba}},
  482.   booktitle = {ACM SIGMOD Conference},
  483.   year = {1988},
  484.   month = {June},
  485.   pages = {99--108},
  486.   keyword = {parallel I/O, database, disk caching},
  487.   comment = {A database machine. Experimental/analytical model of a placement
  488.   algorithm that declusters relations across several parallel, independent
  489.   disks. The declustering is done on a subset of the disks, and the choices
  490.   involved are the number of disks to decluster onto, which relations to put
  491.   where, and whether a relation should be cache-resident. Communications
  492.   overhead limits the usefulness of declustering in some cases, depending on
  493.   the workload. See boral:bubba [David.Kotz@Dartmouth.edu]}
  494. }
  495.  
  496. @Misc{cray:pario,
  497.   key = {Cray89},
  498.   author = {Cray Research},
  499.   title = {{Cray Research I/O} Solutions},
  500.   year = {1989},
  501.   note = {Sales literature},
  502.   keyword = {parallel I/O, disk hardware},
  503.   comment = {Glossies from Cray describing their I/O products.
  504.   [David.Kotz@Dartmouth.edu]}
  505. }
  506.  
  507. @Misc{cray:pario2,
  508.   key = {Cray90},
  509.   author = {Cray Research},
  510.   title = {{DS-41} Disk Subsystem},
  511.   year = {1990},
  512.   note = {Sales literature number MCFS-4-0790},
  513.   keyword = {parallel I/O, disk hardware},
  514.   comment = {Glossy from Cray describing their new disk subsystem: up two four
  515.   controllers and up to four ``drives'', each of which actually have four
  516.   spindles. Thus, a full subsystem has 16 disks. Each drive or controller
  517.   sustains 9.6 MBytes/sec sustained, for a total of 38.4 MBytes/sec. Each drive
  518.   has 4.8 GBytes, for a total of 19.2 Gbytes. Access time per drive is 2--46.6
  519.   msec, average 24 msec. They don't say how the 4 spindles within a driver are
  520.   controlled or arranged. [David.Kotz@Dartmouth.edu]}
  521. }
  522.  
  523. @Unpublished{crockett:manual,
  524.   author = {Thomas W. Crockett},
  525.   title = {Specification of the Operating System Interface for Parallel File
  526.   Organizations},
  527.   year = {1988},
  528.   note = {Publication status unknown (ICASE technical report)},
  529.   keyword = {parallel I/O, parallel file system},
  530.   comment = {Man pages for his Flex version of file interface.
  531.   [David.Kotz@Dartmouth.edu]}
  532. }
  533.  
  534. @InProceedings{crockett:par-files,
  535.   author = {Thomas W. Crockett},
  536.   title = {File Concepts for Parallel {I/O}},
  537.   booktitle = {Proceedings of Supercomputing '89},
  538.   year = {1989},
  539.   pages = {574--579},
  540.   keyword = {parallel I/O, file access pattern, parallel file system},
  541.   comment = {Two views of a file: global (for sequential programs) and internal
  542.   (for parallel programs). Standardized forms for these views, for long-lived
  543.   files. Temp files have specialized forms. The access types are sequential,
  544.   partitioned, interleaved, and self-scheduled, plus global random and
  545.   partitioned random. He relates these to their best storage patterns. Buffer
  546.   cache only needed for direct (random) access. The application must specify
  547.   the access pattern desired. [David.Kotz@Dartmouth.edu]}
  548. }
  549.  
  550. @Article{csa-io,
  551.   author = {T. J. M.},
  552.   title = {Now: Parallel storage to match parallel {CPU} power},
  553.   journal = {Electronics},
  554.   year = {1988},
  555.   month = {December},
  556.   volume = {61},
  557.   number = {12},
  558.   pages = {112},
  559.   keyword = {parallel I/O, disk array}
  560. }
  561.  
  562. @InProceedings{debenedictus:ncube,
  563.   author = {Erik DeBenedictus and Juan Miguel del Rosario},
  564.   title = {{nCUBE} Parallel {I/O} Software},
  565.   booktitle = {Eleventh Annual IEEE International Phoenix Conference on
  566.   Computers and Communications (IPCCC)},
  567.   year = {1992},
  568.   month = {April},
  569.   pages = {0117--0124},
  570.   keyword = {parallel file system, parallel I/O},
  571.   comment = {Interesting paper. Describes their mechanism for mapping I/O so
  572.   that the file system knows both the mapping of a data structure into memory
  573.   and on the disks, so that it can do the permutation and send the right data
  574.   to the right disk, and back again. Interesting Unix-compatible interface.
  575.   Questionable whether it can handle complex formats. [David.Kotz@Dartmouth.edu]}
  576. }
  577.  
  578. @InProceedings{debenedictus:pario,
  579.   author = {Erik DeBenedictus and Peter Madams},
  580.   title = {{nCUBE's} Parallel {I/O} with {Unix} Capability},
  581.   booktitle = {Sixth Annual Distributed-Memory Computer Conference},
  582.   year = {1991},
  583.   pages = {270--277},
  584.   keyword = {parallel I/O, multiprocessor file system, file system interface},
  585.   comment = {Looks like they give the byte-level mapping, then do normal reads
  586.   and writes; mapping routes the data to and from the correct place. It does
  587.   let you intermix comp with I/O. Elegant concept. Nice interface. Works best,
  588.   I think, for cases where data layout known in advance, data format is known,
  589.   and mapping is regular enough for easy specification. [David.Kotz@Dartmouth.edu]}
  590. }
  591.  
  592. @Article{delrosario:nCUBE,
  593.   author = {Juan Miguel del Rosario},
  594.   title = {High Performance Parallel {I/O} on the {nCUBE} 2},
  595.   journal = {Institute of Electronics, Information and Communications Engineers
  596.   (Transactions)},
  597.   year = {1992},
  598.   month = {August},
  599.   note = {To appear},
  600.   keyword = {parallel I/O, parallel file system},
  601.   comment = {Much is also covered in his other articles, but more detail here
  602.   on the mapping functions, and more flexible mapping functions (can be user
  603.   specified, or some from a library). Striped disks, parallel pipes, graphics,
  604.   and HIPPI supported. [David.Kotz@Dartmouth.edu]}
  605. }
  606.  
  607. @TechReport{dewitt:gamma,
  608.   author = {David J. {DeWitt} and Robert H. Gerber and Goetz Graefe and Michael
  609.   L. Heytens and Krishna B. Kumar and M. Muralikrishna},
  610.   title = {{GAMMA}: A High Performance Dataflow Database Machine},
  611.   year = {1986},
  612.   month = {March},
  613.   number = {TR-635},
  614.   institution = {Dept. of Computer Science, Univ. of Wisconsin-Madison},
  615.   keyword = {parallel I/O, database, GAMMA},
  616.   comment = {Better to cite dewitt:gamma2. Multiprocessor (VAX) DBMS on a token
  617.   ring with disk at each processor. They thought this was better than
  618.   separating disks from processors by network since then network must handle
  619.   {\em all} I/O rather than just what needs to move. Conjecture that shared
  620.   memory might be best interconnection network. Relations are horizontally
  621.   partitioned in some way, and each processor reads its own set and operates on
  622.   them there. [David.Kotz@Dartmouth.edu]}
  623. }
  624.  
  625. @InProceedings{dewitt:gamma-dbm,
  626.   author = {David J. DeWitt and Shahram Ghandeharizadeh and Donovan Schneider},
  627.   title = {A Performance Analysis of the {GAMMA} Database Machine},
  628.   booktitle = {ACM SIGMOD Conference},
  629.   year = {1988},
  630.   month = {June},
  631.   pages = {350--360},
  632.   keyword = {parallel I/O, database, performance analysis, Teradata, GAMMA},
  633.   comment = {Compared Gamma with Teradata and showed speedup. For various
  634.   operations on big relations. See fairly good linear speedup in many cases.
  635.   Note that they vary one variable at a time to examine different things. Their
  636.   bottleneck was at the memory-network interface. [David.Kotz@Dartmouth.edu]}
  637. }
  638.  
  639. @InProceedings{dewitt:gamma2,
  640.   author = {David J. DeWitt and Robert H. Gerber and Goetz Graefe and Michael
  641.   L. Heytens and Krishna B. Kumar and M. Muralikrishna},
  642.   title = {{GAMMA} --- {A} High Performance Dataflow Database Machine},
  643.   booktitle = {12th International Conference on Very Large Data Bases},
  644.   year = {1986},
  645.   pages = {228--237},
  646.   keyword = {parallel I/O, database, GAMMA},
  647.   comment = {Almost identical to dewitt:gamma, with some updates. See that for
  648.   comments, but cite this one. See also dewitt:gamma3 for a more recent paper.
  649.   [David.Kotz@Dartmouth.edu]}
  650. }
  651.  
  652. @Article{dewitt:gamma3,
  653.   author = {David J. DeWitt and Shahram Ghandeharizadeh and Donovan A.
  654.   Schneider and Allan Bricker and Hui-I Hsaio and Rick Rasmussen},
  655.   title = {The {Gamma} Database Machine Project},
  656.   journal = {IEEE Transactions on Knowledge and Data Engineering},
  657.   year = {1990},
  658.   month = {March},
  659.   volume = {2},
  660.   number = {1},
  661.   pages = {44--62},
  662.   keyword = {parallel I/O, database, GAMMA},
  663.   comment = {An updated version of dewitt:gamma2, with elements of
  664.   dewitt:gamma-dbm. Really only need to cite this one. This is the same basic
  665.   idea as dewitt:gamma2, but after they ported the system from the VAXen to an
  666.   iPSC/2. Speedup results good. How about comparing it to a single-processor,
  667.   single-disk system with increasing disk bandwidth? That is, how much of their
  668.   speedup comes from the increasing disk bandwidth, and how much from the
  669.   actual use of parallelism? [David.Kotz@Dartmouth.edu]}
  670. }
  671.  
  672. @Article{dewitt:pardbs,
  673.   author = {David DeWitt and Jim Gray},
  674.   title = {Parallel Database Systems: The Future of High-Performance Database
  675.   Systems},
  676.   journal = {Communications of the ACM},
  677.   year = {1992},
  678.   month = {June},
  679.   volume = {35},
  680.   number = {6},
  681.   pages = {85--98},
  682.   keyword = {database, parallel computing, parallel I/O},
  683.   comment = {They point out that the comments of boral:critique --- that
  684.   database machines were doomed --- did really not come true. Their new thesis
  685.   is that specialized hardware is not necessary and has not been successful,
  686.   but that parallel database systems are clearly succesful. In particular, they
  687.   argue for shared-nothing layouts. They survey the state-of-the-art parallel
  688.   DB systems. Earlier version in Computer Architecture News 12/90.
  689.   [David.Kotz@Dartmouth.edu]}
  690. }
  691.  
  692. @InProceedings{dewitt:parsort,
  693.   author = {David J. DeWitt and Jeffrey F. Naughton and Donovan A. Schneider},
  694.   title = {Parallel Sorting on a Shared-Nothing Architecture using
  695.   Probabilistic Splitting},
  696.   booktitle = {Proceedings of the First International Conference on Parallel
  697.   and Distributed Information Systems},
  698.   year = {1991},
  699.   pages = {280--291},
  700.   keyword = {parallel I/O, parallel database, external sorting},
  701.   comment = {Comparing exact and probabilistic splitting for external sorting
  702.   on a database. Model and experimental results from Gamma machine. Basically,
  703.   the idea is to decide on a splitting vector, which defines $N$ buckets for an
  704.   $N$-process program, and have each program read its initial segment of the
  705.   data and send each element to the appropriate bucket (other process). All
  706.   elements received are written to disks as small sorted runs. Then each
  707.   process mergesorts its runs. Probabilistic split uses only a sample of the
  708.   elements to define the vector. [David.Kotz@Dartmouth.edu]}
  709. }
  710.  
  711. @InProceedings{dibble:bridge,
  712.   author = {Peter Dibble and Michael Scott and Carla Ellis},
  713.   title = {Bridge: {A} High-Performance File System for Parallel Processors},
  714.   booktitle = {Proceedings of the Eighth International Conference on
  715.   Distributed Computer Systems},
  716.   year = {1988},
  717.   month = {June},
  718.   pages = {154--161},
  719.   keyword = {Carla, Bridge, parallel file system, Butterfly}
  720. }
  721.  
  722. @Article{dibble:pifs,
  723.   author = {P. C. Dibble and M. L. Scott},
  724.   title = {The {Parallel Interleaved File System:} {A} Solution to the
  725.   Multiprocessor {I/O} Bottleneck},
  726.   journal = {IEEE Transactions on Parallel and Distributed Systems},
  727.   year = {1992},
  728.   note = {To appear},
  729.   keyword = {Bridge, parallel file system},
  730.   abstract = {Parallel computers with non-parallel file systems are limited by
  731.   the performance of the processor running the file system. We have designed
  732.   and implemented a parallel file system called Bridge that eliminates this
  733.   problem by spreading both data and file system computation over a large
  734.   number of processors and disks. To assess the effectiveness of Bridge we have
  735.   used it to implement several data-intensive applications, including a
  736.   parallel external merge sort. The merge sort is a particularly demanding
  737.   application; it requires significant amounts of interprocessor communication
  738.   and data movement. A detailed analysis of this application indicates that
  739.   Bridge can profitably be used on configurations in which disks are attached
  740.   to more than 150 processors. Empirical results on a 32-processor
  741.   implementation agree with the analysis, providing us with a high degree of
  742.   confidence in this prediction. Based on our experience, we argue that file
  743.   systems such as Bridge will satisfy the I/O needs of a wide range of parallel
  744.   architectures and applications. This paper has been through one round of
  745.   reviewing for IEEE TPDS, and is currently undergoing revision. The postscript
  746.   in this directory is the version submitted to the journal in May of 1990:
  747.   {\small\tt cayuga.cs.rochester.edu:pub/systems_papers/90.TPDS.Bridge.ps.Z}}
  748. }
  749.  
  750. @Article{dibble:sort,
  751.   author = {Peter C. Dibble and Michael L. Scott},
  752.   title = {External Sorting on a Parallel Interleaved File System},
  753.   journal = {University of Rochester 1989--90 Computer Science and Engineering
  754.   Research Review},
  755.   year = {1989},
  756.   keyword = {parallel I/O, sorting, merging, parallel file reference pattern},
  757.   comment = {Cite dibble:sort2. Based on Bridge file system (see
  758.   dibble:bridge). Parallel external merge-sort tool. Sort file on each disk,
  759.   then do a parallel merge. The merge is serialized by the token-passing
  760.   mechanism, but the I/O time dominates. The key is to keep disks busy
  761.   constantly. Uses some read-ahead, write-behind to control fluctuations in
  762.   disk request timing. Analytical analysis of the algorithm lends insight and
  763.   matches well with the timings. Locality is a big win in Bridge tools.
  764.   [David.Kotz@Dartmouth.edu]}
  765. }
  766.  
  767. @Article{dibble:sort2,
  768.   author = {Peter C. Dibble and Michael L. Scott},
  769.   title = {Beyond Striping: The {Bridge} Multiprocessor File System},
  770.   journal = {Computer Architecture News},
  771.   year = {1989},
  772.   month = {September},
  773.   volume = {19},
  774.   number = {5},
  775.   keyword = {parallel I/O, external sorting, merging, parallel file reference
  776.   pattern},
  777.   comment = {Subset of dibble:sort. Extra comments to distinguish from striping
  778.   and RAID work. Good point that those projects are addressing a different
  779.   bottleneck, and that they can provide essentially unlimited bandwidth to a
  780.   single processor. Bridge could use those as individual file systems,
  781.   parallelizing the overall file system, avoiding the software bottleneck.
  782.   Using a very-reliable RAID at each node in Bridge could safeguard Bridge
  783.   against failure for reasonable periods, removing reliability from Bridge
  784.   level. [David.Kotz@Dartmouth.edu]}
  785. }
  786.  
  787. @PhdThesis{dibble:thesis,
  788.   author = {Peter C. Dibble},
  789.   title = {A Parallel Interleaved File System},
  790.   year = {1990},
  791.   month = {March},
  792.   school = {University of Rochester},
  793.   keyword = {parallel I/O, external sorting, merging, parallel file system},
  794.   comment = {Also TR 334. Mostly covered by other papers, but includes good
  795.   introduction, discussion of reliability and maintenance issues, and
  796.   implementation. Short mention of prefetching implied that simple OBL was
  797.   counter-productive, but later tool-specific buffering with read-ahead was
  798.   often important. The three interfaces to the PIFS server are interesting. A
  799.   fourth compromise might help make tools easier to write.
  800.   [David.Kotz@Dartmouth.edu]}
  801. }
  802.  
  803. @TechReport{edelson:pario,
  804.   author = {Daniel Edelson and Darrell D. E. Long},
  805.   title = {High Speed Disk {I/O} for Parallel Computers},
  806.   year = {1990},
  807.   month = {January},
  808.   number = {UCSC-CRL-90-02},
  809.   institution = {Baskin Center for Computer Engineering and Information
  810.   Science},
  811.   keyword = {parallel I/O, disk caching, parallel file system, log-structured
  812.   file system, Intel iPSC/2},
  813.   comment = {Essentially a small literature survey. Mentions caching, striping,
  814.   disk layout optimization, log-structured file systems, and Bridge and Intel
  815.   CFS. Plugs their ``Swift'' architecture. [David.Kotz@Dartmouth.edu]}
  816. }
  817.  
  818. @TechReport{ellis:interleaved,
  819.   author = {Carla Ellis and P. Dibble},
  820.   title = {An Interleaved File System for the {Butterfly}},
  821.   year = {1987},
  822.   month = {January},
  823.   number = {CS-1987-4},
  824.   institution = {Dept. of Computer Science, Duke University},
  825.   keyword = {Carla, parallel file system, Bridge, Butterfly}
  826. }
  827.  
  828. @InProceedings{ellis:prefetch,
  829.   author = {Carla Schlatter Ellis and David Kotz},
  830.   title = {Prefetching in File Systems for {MIMD} Multiprocessors},
  831.   booktitle = {Proceedings of the 1989 International Conference on Parallel
  832.   Processing},
  833.   year = {1989},
  834.   month = {August},
  835.   pages = {I:306--314},
  836.   keyword = {dfk, parallel file system, prefetching, disk caching, MIMD,
  837.   parallel I/O},
  838.   abstract = {The problem of providing file I/O to parallel programs has been
  839.   largely neglected in the development of multiprocessor systems. There are two
  840.   essential elements of any file system design intended for a highly parallel
  841.   environment: parallel I/O and effective caching schemes. This paper
  842.   concentrates on the second aspect of file system design and specifically, on
  843.   the question of whether prefetching blocks of the file into the block cache
  844.   can effectively reduce overall execution time of a parallel computation, even
  845.   under favorable assumptions. Experiments have been conducted with an
  846.   interleaved file system testbed on the Butterfly Plus multiprocessor. Results
  847.   of these experiments suggest that 1) the hit ratio, the accepted measure in
  848.   traditional caching studies, may not be an adequate measure of performance
  849.   when the workload consists of parallel computations and parallel file access
  850.   patterns, 2) caching with prefetching can significantly improve the hit ratio
  851.   and the average time to perform an I/O operation, and 3) an improvement in
  852.   overall execution time has been observed in most cases. In spite of these
  853.   gains, prefetching sometimes results in increased execution times (a negative
  854.   result, given the optimistic nature of the study). We explore why is it not
  855.   trivial to translate savings on individual I/O requests into consistently
  856.   better overall performance and identify the key problems that need to be
  857.   addressed in order to improve the potential of prefetching techniques in this
  858.   environment.},
  859.   comment = {Superseded by kotz:prefetch. [David.Kotz@Dartmouth.edu]}
  860. }
  861.  
  862. @InProceedings{flynn:hyper-fs,
  863.   author = {Robert J. Flynn and Haldun Hadimioglu},
  864.   title = {A Distributed {Hypercube} File System},
  865.   booktitle = {Third Conference on Hypercube Concurrent Computers and
  866.   Applications},
  867.   year = {1988},
  868.   pages = {1375--1381},
  869.   keyword = {parallel I/O, hypercube, parallel file system},
  870.   comment = {For hypercube-like architectures. Interleaved files, though
  871.   flexible. Separate network for I/O, maybe not hypercube. I/O is blocked and
  872.   buffered -- no coherency or prefetching issues discussed. Buffered close to
  873.   point of use. Parallel access is ok. Broadcast supported? I/O nodes
  874.   distinguished from comp nodes. I/O hooked to front-end too. See hadimioglu:fs
  875.   and hadimioglu:hyperfs [David.Kotz@Dartmouth.edu]}
  876. }
  877.  
  878. @InProceedings{french:balance,
  879.   author = {James C. French},
  880.   title = {Characterizing the Balance of Parallel {I/O} Systems},
  881.   booktitle = {Sixth Annual Distributed-Memory Computer Conference},
  882.   year = {1991},
  883.   pages = {724--727},
  884.   keyword = {parallel I/O, multiprocessor file system},
  885.   comment = {Proposes the min\_SAR, max\_SAR, and ratio $\phi$ as measures of
  886.   aggregate file system bandwidth. Has to do with load balance issues; how well
  887.   the file system balances between competing nodes in a heavy-use period. Might
  888.   be worth using. [David.Kotz@Dartmouth.edu]}
  889. }
  890.  
  891. @Article{french:ipsc2io,
  892.   author = {James C. French and Terrence W. Pratt and Mriganka Das},
  893.   title = {Performance Measurement of a Parallel Input/Output System for the
  894.   {Intel iPSC/2} Hypercube},
  895.   journal = {Proceedings of the 1991 ACM Sigmetrics Conference on Measurement
  896.   and Modeling of Computer Systems},
  897.   year = {1991},
  898.   pages = {178--187},
  899.   keyword = {parallel I/O, Intel iPSC/2},
  900.   comment = {See french:ipsc2io-tr. [David.Kotz@Dartmouth.edu]}
  901. }
  902.  
  903. @TechReport{french:ipsc2io-tr,
  904.   author = {James C. French and Terrence W. Pratt and Mriganka Das},
  905.   title = {Performance Measurement of a Parallel Input/Output System for the
  906.   {Intel iPSC/2} Hypercube},
  907.   year = {1991},
  908.   number = {IPC-TR-91-002},
  909.   institution = {Institute for Parallel Computation, University of Virginia},
  910.   note = {Appeared in, Proceedings of the 1991 ACM Sigmetrics Conference on
  911.   Measurement and Modeling of Computer Systems},
  912.   keyword = {parallel I/O, Intel iPSC/2, disk caching, prefetching},
  913.   comment = {Cite french:ipsc2io. Really nice study of performance of existing
  914.   CFS system on 32-node + 4 I/O-node iPSC/2. They show big improvements due to
  915.   declustering, preallocation, caching, and prefetching. See also pratt:twofs.
  916.   [David.Kotz@Dartmouth.edu]}
  917. }
  918.  
  919. @Article{garcia:striping-reliability,
  920.   author = {Hector Garcia-Molina and Kenneth Salem},
  921.   title = {The Impact of Disk Striping on Reliability},
  922.   journal = {{IEEE} Database Engineering Bulletin},
  923.   year = {1988},
  924.   month = {March},
  925.   volume = {11},
  926.   number = {1},
  927.   pages = {26--39},
  928.   keyword = {parallel I/O, disk striping, reliability, disk array},
  929.   comment = {Reliability of striped filesystems may not be as bad as you think.
  930.   Parity disks help. Performance improvements limited to small number of disks
  931.   ($n<10$). Good point: efficiency of striping will increase as the gap between
  932.   CPU/memory performance and disk speed and file size widens. Reliability may
  933.   be better if measured in terms of performing a task in time T, since the
  934.   striped version may take less time. This gives disks less opportunity to fail
  935.   during that period. Also consider the CPU failure mode, and its use over less
  936.   time. [David.Kotz@Dartmouth.edu]}
  937. }
  938.  
  939. @InProceedings{gibson:failcorrect,
  940.   author = {Garth A. Gibson and Lisa Hellerstein and Richard M. Karp and Randy
  941.   H. Katz and David A. Patterson},
  942.   title = {Failure Correction Techniques for Large Disk Arrays},
  943.   booktitle = {Third International Conference on Architectural Support for
  944.   Programming Languages and Operating Systems},
  945.   year = {1989},
  946.   month = {April},
  947.   pages = {123--132},
  948.   keyword = {parallel I/O, disk array, RAID, reliability},
  949.   comment = {gibson:raid is the same. [David.Kotz@Dartmouth.edu]}
  950. }
  951.  
  952. @TechReport{gibson:raid,
  953.   author = {Garth Gibson and Lisa Hellerstein and Richard Karp and Randy Katz
  954.   and David Patterson},
  955.   title = {Coding techniques for handling failures in large disk arrays},
  956.   year = {1988},
  957.   month = {December},
  958.   number = {UCB/CSD 88/477},
  959.   institution = {UC Berkeley},
  960.   keyword = {parallel I/O, RAID, reliability, disk array},
  961.   comment = {Published as gibson:failcorrect. Design of parity encodings to
  962.   handle more than one bit failure in any group. Their 2-bit correcting codes
  963.   are good enough for 1000-disk RAIDs that 3-bit correction is not needed.
  964.   [David.Kotz@Dartmouth.edu]}
  965. }
  966.  
  967. @InProceedings{gray:stripe,
  968.   author = {Jim Gray and Bob Horst and Mark Walker},
  969.   title = {Parity Striping of Disk Arrays: Low-cost Reliable Storage with
  970.   Acceptable Throughput},
  971.   booktitle = {Proceedings of the 16th VLDB Conference},
  972.   year = {1990},
  973.   pages = {148--159},
  974.   keyword = {disk striping, reliability},
  975.   comment = {Parity striping, a variation of RAID 5, is just a different way of
  976.   mapping blocks to disks. It groups parity blocks into extents, and does not
  977.   stripe the data blocks. A logical disk is mostly contained in one physical
  978.   disk, plus a parity region in anothe disk. Good for transaction processing
  979.   workloads. Has the low cost/GByte of RAID, the reliability of RAID, without
  980.   the high transfer rate of RAID, but with much better requests/second
  981.   throughput than RAID 5. (But 40\% worse than mirrors.) So it is a compromise
  982.   between RAID and mirrors. [David.Kotz@Dartmouth.edu]}
  983. }
  984.  
  985. @TechReport{grimshaw:ELFSTR,
  986.   author = {Andrew S. Grimshaw and Loyot, Jr., Edmond C.},
  987.   title = {{ELFS:} Object-oriented Extensible File Systems},
  988.   year = {1991},
  989.   month = {July},
  990.   number = {TR-91-14},
  991.   institution = {Univ. of Virginia Computer Science Department},
  992.   keyword = {parallel I/O, parallel file system, object-oriented, file system
  993.   interface, Intel iPSC/2},
  994.   comment = {From uvacs.cs.virginia.edu. See also grimshaw:elfs. provide the
  995.   high bandwidth and low latency, reduce the cognitive burden on the
  996.   programmer, and manage proliferation of data formats and architectural
  997.   changes. Details of the plan to make an extensible OO interface to file
  998.   system. A few results. Objects each have a separate thread of control, so
  999.   they can do asynchronous activity like prefetching and caching in the
  1000.   background, and support multiple outstanding requests. The Mentat object
  1001.   system makes it easy for them to support pipelining of I/O with I/O and
  1002.   computation in the user program. Let the user choose type of consistency
  1003.   needed. [David.Kotz@Dartmouth.edu]}
  1004. }
  1005.  
  1006. @InProceedings{grimshaw:elfs,
  1007.   author = {Andrew S. Grimshaw and Loyot, Jr., Edmond C.},
  1008.   title = {{ELFS:} Object-oriented Extensible File Systems},
  1009.   booktitle = {Proceedings of the First International Conference on Parallel
  1010.   and Distributed Information Systems},
  1011.   year = {1991},
  1012.   pages = {177},
  1013.   keyword = {parallel I/O, parallel file system, object-oriented, file system
  1014.   interface},
  1015.   comment = {Full paper grimshaw:ELFSTR. Really neat idea. Uses OO interface to
  1016.   file system, which is mostly in user mode. The object classes represent
  1017.   particular access patterns (e.g., 2-D matrix) in the file, and hide the actual
  1018.   structure of the file. The object knows enough to taylor the cache and
  1019.   prefetch algorithms to the semantics. Class inheritance allows layering.
  1020.   [David.Kotz@Dartmouth.edu]}
  1021. }
  1022.  
  1023. @InProceedings{grimshaw:objects,
  1024.   author = {Andrew S. Grimshaw and Jeff Prem},
  1025.   title = {High Performance Parallel File Objects},
  1026.   booktitle = {Sixth Annual Distributed-Memory Computer Conference},
  1027.   year = {1991},
  1028.   pages = {720--723},
  1029.   keyword = {parallel I/O, multiprocessor file system, file system interface},
  1030.   comment = {A little new from grimshaw:ELFSTR. Gives some CFS performance
  1031.   results. Note on p.721 he says that CFS prefetches into ``local memory from
  1032.   which to satify future user requests {\em that never come.}'' This happens if
  1033.   the local access pattern isn't purely sequential, as in an interleaved
  1034.   pattern. [David.Kotz@Dartmouth.edu]}
  1035. }
  1036.  
  1037. @InProceedings{hadimioglu:fs,
  1038.   author = {Haldun Hadimioglu and Robert J. Flynn},
  1039.   title = {The Architectural Design of a Tightly-Coupled Distributed Hypercube
  1040.   File System},
  1041.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  1042.   Applications},
  1043.   year = {1989},
  1044.   pages = {147--150},
  1045.   keyword = {hypercube, multiprocessor file system},
  1046.   comment = {An early paper describing a proposed file system for hypercubes.
  1047.   Poorly written. See hadimioglu:hyperfs and flynn:hyper-fs
  1048.   [David.Kotz@Dartmouth.edu]}
  1049. }
  1050.  
  1051. @InProceedings{hadimioglu:hyperfs,
  1052.   author = {Haldun Hadimioglu and Robert J. Flynn},
  1053.   title = {The Design and Analysis of a Tightly Coupled Hypercube File System},
  1054.   booktitle = {Fifth Annual Distributed-Memory Computer Conference},
  1055.   year = {1990},
  1056.   pages = {1405--1410},
  1057.   keyword = {multiprocessor file system, parallel I/O, hypercube},
  1058.   comment = {Describes a hypercube file system based on I/O nodes and processor
  1059.   nodes. A few results from a hypercube simulator. See hadimioglu:fs and
  1060.   flynn:hyper-fs [David.Kotz@Dartmouth.edu]}
  1061. }
  1062.  
  1063. @InProceedings{hartman:zebra,
  1064.   author = {John H. Hartman and John K. Ousterhout},
  1065.   title = {{Zebra: A} Striped Network File System},
  1066.   booktitle = {Proceedings of the Usenix File Systems Workshop},
  1067.   year = {1992},
  1068.   month = {May},
  1069.   pages = {71--78},
  1070.   keyword = {disk striping, distributed file system}
  1071. }
  1072.  
  1073. @InProceedings{hatcher:linda,
  1074.   author = {Philip J. Hatcher and Michael J. Quinn},
  1075.   title = {{C*-Linda:} {A} Programming Environment with Multiple Data-Parallel
  1076.   Modules and Parallel {I/O}},
  1077.   booktitle = {Proceedings of the Twenty-Fourth Annual Hawaii International
  1078.   Conference on System Sciences},
  1079.   year = {1991},
  1080.   pages = {382--389},
  1081.   keyword = {parallel I/O, Linda, data parallel, nCUBE, parallel graphics,
  1082.   heterogeneous computing},
  1083.   comment = {C*-Linda is basically a combination of C* and C-Linda. The model
  1084.   is that of several SIMD modules interacting in a MIMD fashion through a Linda
  1085.   tuple space. The modules are created using {\tt eval}, as in Linda. In this
  1086.   case, the compiler statically assigns each eval to a separate subcube on an
  1087.   nCUBE 3200, although they also talk about multiprogramming several modules on
  1088.   a subcube (not supported by VERTEX). They envision having separate modules
  1089.   running on the nCUBE's graphics processors, or having the file system
  1090.   directly talk to the tuple space, to support I/O. They also envision talking
  1091.   to modules elsewhere on a network, e.g., a workstation, through the tuple
  1092.   space. They reject the idea of sharing memory between modules due to the lack
  1093.   of synchrony between modules, and message passing because it is error-prone.
  1094.   [David.Kotz@Dartmouth.edu]}
  1095. }
  1096.  
  1097. @InProceedings{hayes:nCUBE,
  1098.   author = {John P. Hayes and Trevor N. Mudge and Quentin F. Stout and Stephen
  1099.   Colley and John Palmer},
  1100.   title = {Architecture of a Hypercube Supercomputer},
  1101.   booktitle = {Proceedings of the 1986 International Conference on Parallel
  1102.   Processing},
  1103.   year = {1986},
  1104.   pages = {653--660},
  1105.   keyword = {hypercube, parallel architecture, nCUBE},
  1106.   comment = {Description of the first nCUBE, the NCUBE/ten. Good historical
  1107.   background about hypercubes. Talks about their design choices. Says a little
  1108.   about the file system --- basically just a way of mounting disks on top of
  1109.   each other, within the nCUBE and to other nCUBEs. [David.Kotz@Dartmouth.edu]}
  1110. }
  1111.  
  1112. @Book{hennessy:arch,
  1113.   author = {John L. Hennessy and David A. Patterson},
  1114.   title = {Computer Architecture: A Quantitative Approach},
  1115.   year = {1990},
  1116.   publisher = {Morgan Kaufman},
  1117.   keyword = {computer architecture, textbook},
  1118.   comment = {Looks like a great coverage of architecture. Of course a chapter
  1119.   on I/O! [David.Kotz@Dartmouth.edu]}
  1120. }
  1121.  
  1122. @InProceedings{hou:disk,
  1123.   author = {Robert Y. Hou and Gregory R. Ganger and Yale N. Patt and Charles E.
  1124.   Gimarc},
  1125.   title = {Issues and Problems in the {I/O} Subsystem, Part {I} --- {The}
  1126.   Magnetic Disk},
  1127.   booktitle = {Proceedings of the Twenty-Fifth Annual Hawaii International
  1128.   Conference on System Sciences},
  1129.   year = {1992},
  1130.   pages = {48--57},
  1131.   keyword = {I/O},
  1132.   comment = {A short summary of disk I/O issues: disk technology, latency
  1133.   reduction, parallel I/O, {\em etc.}. [David.Kotz@Dartmouth.edu]}
  1134. }
  1135.  
  1136. @InProceedings{hsiao:decluster,
  1137.   author = {Hui-I Hsiao and David DeWitt},
  1138.   title = {{Chained Declustering}: {A} New Availability Strategy for
  1139.   Multiprocessor Database Machines},
  1140.   booktitle = {Proceedings of 6th International Data Engineering Conference},
  1141.   year = {1990},
  1142.   pages = {456--465},
  1143.   keyword = {disk array, reliability, parallel I/O},
  1144.   comment = {Chained declustering has cost like mirroring, since it replicates
  1145.   each block, but has better load increase during failure than mirrors,
  1146.   interleaved declustering, or RAID. (Or parity striping (my guess)). Has
  1147.   reliability between that of mirrors and RAID, and much better than
  1148.   interleaved declustering. Would also be much easier in a distributed
  1149.   environment. See hsiao:diskrep. [David.Kotz@Dartmouth.edu]}
  1150. }
  1151.  
  1152. @InProceedings{hsiao:diskrep,
  1153.   author = {Hui-I Hsiao and David DeWitt},
  1154.   title = {A Performance Study of Three High Availability Data Replication
  1155.   Strategies},
  1156.   booktitle = {Proceedings of the First International Conference on Parallel
  1157.   and Distributed Information Systems},
  1158.   year = {1991},
  1159.   pages = {18--28},
  1160.   keyword = {disk array, reliability, disk mirror, parallel I/O},
  1161.   comment = {Compares mirrored disks (MD) with interleaved declustering (ID)
  1162.   with chained declustering (CD). ID and CD found to have much better
  1163.   performance in normal and failure modes. But, it seems that they compared a
  1164.   single-queue (synchronous) MD system with an asynchronous ID and CD system,
  1165.   so one wonders whether the difference actually came from the asynchrony
  1166.   instead of the inherent difference. See hsiao:decluster.
  1167.   [David.Kotz@Dartmouth.edu]}
  1168. }
  1169.  
  1170. @MastersThesis{husmann:format,
  1171.   author = {Harlan Edward Husmann},
  1172.   title = {High-Speed Format Conversion and Parallel {I/O} in Numerical
  1173.   Programs},
  1174.   year = {1984},
  1175.   month = {January},
  1176.   school = {Department of Computer Science, Univ. of Illinois at
  1177.   Urbana-Champaign},
  1178.   note = {Available as TR number UIUCDCS-R-84-1152.},
  1179.   keyword = {parallel I/O, I/O},
  1180.   comment = {Does FORTRAN format conversion in software in parallel or in
  1181.   hardware, to obtain good speedups for lots of programs. However he found that
  1182.   increasing the I/O bandwidth was the most significant change that could be
  1183.   made in the parallel program. [David.Kotz@Dartmouth.edu]}
  1184. }
  1185.  
  1186. @Booklet{intel:examples,
  1187.   key = {Intel},
  1188.   title = {Concurrent {I/O} Application Examples},
  1189.   year = {1989},
  1190.   howpublished = {Intel Corporation Background Information},
  1191.   keyword = {file access pattern, parallel I/O, Intel iPSC/2, hypercube},
  1192.   comment = {Lists several examples and the amount and types of data they
  1193.   require, and how much bandwidth. Fluid flow modeling, Molecular modeling,
  1194.   Seismic processing, and Tactical and strategic systems.
  1195.   [David.Kotz@Dartmouth.edu]}
  1196. }
  1197.  
  1198. @Booklet{intel:ipsc2io,
  1199.   key = {Intel},
  1200.   title = {{iPSC/2} {I/O} Facilities},
  1201.   year = {1988},
  1202.   howpublished = {Intel Corporation},
  1203.   note = {Order number 280120-001},
  1204.   keyword = {parallel I/O, hypercube, Intel iPSC/2},
  1205.   comment = {Simple overview, not much detail. See intel:ipsc2, pierce:pario,
  1206.   asbury:fortranio. Separate I/O nodes from compute nodes. Each I/O node has a
  1207.   SCSI bus to the disks, and communicates with other nodes in the system via
  1208.   Direct-Connect hypercube routing. [David.Kotz@Dartmouth.edu]}
  1209. }
  1210.  
  1211. @Booklet{intel:paragon,
  1212.   key = {Intel},
  1213.   title = {Paragon {XP/S} Product Overview},
  1214.   year = {1991},
  1215.   howpublished = {Intel Corporation},
  1216.   keyword = {parallel architecture, parallel I/O, Intel},
  1217.   comment = {Not a bad glossy. [David.Kotz@Dartmouth.edu]}
  1218. }
  1219.  
  1220. @Misc{intelio,
  1221.   key = {Intel},
  1222.   title = {Intel beefs up its {iPSC/2} supercomputer's {I/O} and memory
  1223.   capabilities},
  1224.   year = {1988},
  1225.   month = {November},
  1226.   volume = {61},
  1227.   number = {11},
  1228.   pages = {24},
  1229.   howpublished = {Electronics},
  1230.   keyword = {parallel I/O, hypercube, Intel iPSC/2}
  1231. }
  1232.  
  1233. @Article{katz:diskarch,
  1234.   author = {Randy H. Katz and Garth A. Gibson and David A. Patterson},
  1235.   title = {Disk System Architectures for High Performance Computing},
  1236.   journal = {Proceedings of the IEEE},
  1237.   year = {1989},
  1238.   month = {December},
  1239.   volume = {77},
  1240.   number = {12},
  1241.   pages = {1842--1858},
  1242.   keyword = {parallel I/O, RAID, disk striping},
  1243.   comment = {Good review of the background of disks and I/O architectures, but
  1244.   a shorter RAID presentation than patterson:RAID. Also addresses controller
  1245.   structure. Good ref for the I/O crisis background, though they don't use that
  1246.   term here. Good taxonomy of previous array techniques.
  1247.   [David.Kotz@Dartmouth.edu]}
  1248. }
  1249.  
  1250. @Article{katz:io-subsys,
  1251.   author = {Randy H. Katz and John K. Ousterhout and David A. Patterson and
  1252.   Michael R. Stonebraker},
  1253.   title = {A Project on High Performance {I/O} Subsystems},
  1254.   journal = {{IEEE} Database Engineering Bulletin},
  1255.   year = {1988},
  1256.   month = {March},
  1257.   volume = {11},
  1258.   number = {1},
  1259.   pages = {40--47},
  1260.   keyword = {parallel I/O, RAID, Sprite, reliability, disk striping, disk
  1261.   array},
  1262.   comment = {Early RAID project paper. Describes the Berkeley team's plan to
  1263.   use an array of small (100M) hard disks as an I/O server for network file
  1264.   service, transaction processing, and supercomputer I/O. Considering
  1265.   performance, reliability, and flexibility. Initially hooked to their SPUR
  1266.   multiprocessor, using Sprite operating system, new filesystem. Either
  1267.   asynchronous striped or independent operation. Use of parity disks to boost
  1268.   reliability. Files may be striped across one or more disks and extend over
  1269.   several sectors, thus a two-dimensional filesystem; striping need not involve
  1270.   all disks. [David.Kotz@Dartmouth.edu]}
  1271. }
  1272.  
  1273. @Article{katz:update,
  1274.   author = {Randy H. Katz and John K. Ousterhout and David A. Patterson and
  1275.   Peter Chen and Ann Chervenak and Rich Drewes and Garth Gibson and Ed Lee and
  1276.   Ken Lutz and Ethan Miller and Mendel Rosenblum},
  1277.   title = {A Project on High Performance {I/O} Subsystems},
  1278.   journal = {Computer Architecture News},
  1279.   year = {1989},
  1280.   month = {September},
  1281.   volume = {17},
  1282.   number = {5},
  1283.   pages = {24--31},
  1284.   keyword = {parallel I/O, RAID, reliability, disk array},
  1285.   comment = {A short summary of the RAID project. They had completed the first
  1286.   prototype with 8 SCSI strings and 32 disks. [David.Kotz@Dartmouth.edu]}
  1287. }
  1288.  
  1289. @Article{kim:asynch,
  1290.   author = {Michelle Y. Kim and Asser N. Tantawi},
  1291.   title = {Asynchronous Disk Interleaving: {Approximating} Access Delays},
  1292.   journal = {IEEE Transactions on Computers},
  1293.   year = {1991},
  1294.   month = {July},
  1295.   volume = {40},
  1296.   number = {7},
  1297.   pages = {801--810},
  1298.   keyword = {disk interleaving, parallel I/O, performance modelling},
  1299.   comment = {As opposed to synchronous disk interleaving, where disks are
  1300.   rotationally synchronous and one access is processed at a time. They develop
  1301.   a performance model and validate with traces of a database system's disk
  1302.   accesses. Average access delay on each disk can be approximated by a normal
  1303.   distribution. [David.Kotz@Dartmouth.edu]}
  1304. }
  1305.  
  1306. @PhdThesis{kim:interleave,
  1307.   author = {Michelle Y. Kim},
  1308.   title = {Synchronously Interleaved Disk Systems with their Application to the
  1309.   Very Large {FFT}},
  1310.   year = {1986},
  1311.   school = {IBM Thomas J. Watson Research Center},
  1312.   address = {Yorktown Heights, New York 10598},
  1313.   note = {IBM Report number RC12372},
  1314.   keyword = {parallel I/O, disk striping, file access pattern, disk array},
  1315.   comment = {Uniprocessor interleaving techniques. Good case for interleaving.
  1316.   Probably better to reference kim:interleaving. Discusses an 3D FFT algorithm
  1317.   in which the matrix is broken into subblocks that are accessed in layers. The
  1318.   layers are stored so this is either contiguous or with a regular stride, in
  1319.   fairly large chunks. [David.Kotz@Dartmouth.edu]}
  1320. }
  1321.  
  1322. @Article{kim:interleaving,
  1323.   author = {Michelle Y. Kim},
  1324.   title = {Synchronized Disk Interleaving},
  1325.   journal = {IEEE Transactions on Computers},
  1326.   year = {1986},
  1327.   month = {November},
  1328.   volume = {C-35},
  1329.   number = {11},
  1330.   pages = {978--988},
  1331.   keyword = {parallel I/O, disk striping, disk array},
  1332.   comment = {See kim:interleave. [David.Kotz@Dartmouth.edu]}
  1333. }
  1334.  
  1335. @TechReport{kotz:fsint,
  1336.   author = {David Kotz},
  1337.   title = {Multiprocessor File System Interfaces},
  1338.   year = {1992},
  1339.   month = {March},
  1340.   number = {PCS-TR92-179},
  1341.   institution = {Dept. of Math and Computer Science, Dartmouth College},
  1342.   note = {Abstract appeared in 1992 Usenix Workshop on File Systems},
  1343.   keyword = {dfk, parallel I/O, multiprocessor file system, file system
  1344.   interface},
  1345.   abstract = {Increasingly, file systems for multiprocessors are designed with
  1346.   parallel access to multiple disks, to keep I/O from becoming a serious
  1347.   bottleneck for parallel applications. Although file system software can
  1348.   transparently provide high-performance access to parallel disks, a new file
  1349.   system interface is needed to facilitate parallel access to a file from a
  1350.   parallel application. We describe the difficulties faced when using the
  1351.   conventional (Unix-like) interface in parallel applications, and then outline
  1352.   ways to extend the conventional interface to provide convenient access to the
  1353.   file for parallel programs, while retaining the traditional interface for
  1354.   programs that have no need for explicitly parallel file access. Our interface
  1355.   includes a single naming scheme, a {\em multiopen\/} operation, local and
  1356.   global file pointers, mapped file pointers, logical records, {\em
  1357.   multifiles}, and logical coercion for backward compatibility.},
  1358.   comment = {Submitted; will then be a conference paper. Can be ftp'd from
  1359.   sunapee.dartmouth.edu in pub/CS-techreports. [David.Kotz@Dartmouth.edu]}
  1360. }
  1361.  
  1362. @InProceedings{kotz:fsint2p,
  1363.   author = {David Kotz},
  1364.   title = {Multiprocessor File System Interfaces},
  1365.   booktitle = {Proceedings of the Usenix File Systems Workshop},
  1366.   year = {1992},
  1367.   month = {May},
  1368.   pages = {149--150},
  1369.   keyword = {dfk, parallel I/O, multiprocessor file system, file system
  1370.   interface},
  1371.   comment = {Short paper (2 pages). [David.Kotz@Dartmouth.edu]}
  1372. }
  1373.  
  1374. @Article{kotz:jpractical,
  1375.   author = {David Kotz and Carla Schlatter Ellis},
  1376.   title = {Practical Prefetching Techniques for Multiprocessor File Systems},
  1377.   journal = {Distributed and Parallel Databases},
  1378.   year = {1992},
  1379.   note = {To appear.},
  1380.   keyword = {dfk, parallel file system, prefetching, disk caching, parallel
  1381.   I/O, MIMD},
  1382.   abstract = {Improvements in the processing speed of multiprocessors are
  1383.   outpacing improvements in the speed of disk hardware. Parallel disk I/O
  1384.   subsystems have been proposed as one way to close the gap between processor
  1385.   and disk speeds. In a previous paper we showed that prefetching and caching
  1386.   have the {\em potential\/} to deliver the performance benefits of parallel
  1387.   file systems to parallel applications. In this paper we describe experiments
  1388.   with {\em practical\/} prefetching policies that base decisions only on
  1389.   on-line reference history, and that can be implemented efficiently. We also
  1390.   test the ability of these policies across a range of architectural
  1391.   parameters.},
  1392.   comment = {Journal version of kotz:practical. See also kotz:writeback.
  1393.   [David.Kotz@Dartmouth.edu]}
  1394. }
  1395.  
  1396. @Article{kotz:jwriteback,
  1397.   author = {David Kotz and Carla Schlatter Ellis},
  1398.   title = {Caching and Writeback Policies in Parallel File Systems},
  1399.   journal = {Journal of Parallel and Distributed Computing},
  1400.   year = {1992},
  1401.   month = {January},
  1402.   note = {Submitted.},
  1403.   keyword = {dfk, parallel file system, disk caching, parallel I/O, MIMD},
  1404.   abstract = {Improvements in the processing speed of multiprocessors are
  1405.   outpacing improvements in the speed of disk hardware. Parallel disk I/O
  1406.   subsystems have been proposed as one way to close the gap between processor
  1407.   and disk speeds. Such parallel disk systems require parallel file system
  1408.   software to avoid performance-limiting bottlenecks. We discuss cache
  1409.   management techniques that can be used in a parallel file system
  1410.   implementation. We examine several writeback policies, and give results of
  1411.   experiments that test their performance.},
  1412.   comment = {Journal version of kotz:writeback. [David.Kotz@Dartmouth.edu]}
  1413. }
  1414.  
  1415. @InProceedings{kotz:practical,
  1416.   author = {David Kotz and Carla Schlatter Ellis},
  1417.   title = {Practical Prefetching Techniques for Parallel File Systems},
  1418.   booktitle = {Proceedings of the First International Conference on Parallel
  1419.   and Distributed Information Systems},
  1420.   year = {1991},
  1421.   month = {December},
  1422.   pages = {182--189},
  1423.   note = {To appear in {\em Distributed and Parallel Databases}.},
  1424.   keyword = {dfk, parallel file system, prefetching, disk caching, parallel
  1425.   I/O, MIMD, OS92W},
  1426.   abstract = {Improvements in the processing speed of multiprocessors are
  1427.   outpacing improvements in the speed of disk hardware. Parallel disk I/O
  1428.   subsystems have been proposed as one way to close the gap between processor
  1429.   and disk speeds. In a previous paper we showed that prefetching and caching
  1430.   have the {\em potential\/} to deliver the performance benefits of parallel
  1431.   file systems to parallel applications. In this paper we describe experiments
  1432.   with {\em practical\/} prefetching policies, and show that prefetching can be
  1433.   implemented efficiently even for the more complex parallel file access
  1434.   patterns. We also test the ability of these policies across a range of
  1435.   architectural parameters.},
  1436.   comment = {Short form of primary thesis results. See kotz:jpractical.
  1437.   [David.Kotz@Dartmouth.edu]}
  1438. }
  1439.  
  1440. @Article{kotz:prefetch,
  1441.   author = {David Kotz and Carla Schlatter Ellis},
  1442.   title = {Prefetching in File Systems for {MIMD} Multiprocessors},
  1443.   journal = {IEEE Transactions on Parallel and Distributed Systems},
  1444.   year = {1990},
  1445.   month = {April},
  1446.   volume = {1},
  1447.   number = {2},
  1448.   pages = {218--230},
  1449.   keyword = {dfk, parallel file system, prefetching, MIMD, disk caching,
  1450.   parallel I/O},
  1451.   abstract = {The problem of providing file I/O to parallel programs has been
  1452.   largely neglected in the development of multiprocessor systems. There are two
  1453.   essential elements of any file system design intended for a highly parallel
  1454.   environment: parallel I/O and effective caching schemes. This paper
  1455.   concentrates on the second aspect of file system design and specifically, on
  1456.   the question of whether prefetching blocks of the file into the block cache
  1457.   can effectively reduce overall execution time of a parallel computation, even
  1458.   under favorable assumptions. Experiments have been conducted with an
  1459.   interleaved file system testbed on the Butterfly Plus multiprocessor. Results
  1460.   of these experiments suggest that 1) the hit ratio, the accepted measure in
  1461.   traditional caching studies, may not be an adequate measure of performance
  1462.   when the workload consists of parallel computations and parallel file access
  1463.   patterns, 2) caching with prefetching can significantly improve the hit ratio
  1464.   and the average time to perform an I/O operation, and 3) an improvement in
  1465.   overall execution time has been observed in most cases. In spite of these
  1466.   gains, prefetching sometimes results in increased execution times (a negative
  1467.   result, given the optimistic nature of the study). We explore why is it not
  1468.   trivial to translate savings on individual I/O requests into consistently
  1469.   better overall performance and identify the key problems that need to be
  1470.   addressed in order to improve the potential of prefetching techniques in this
  1471.   environment.}
  1472. }
  1473.  
  1474. @PhdThesis{kotz:thesis,
  1475.   author = {David Kotz},
  1476.   title = {Prefetching and Caching Techniques in File Systems for {MIMD}
  1477.   Multiprocessors},
  1478.   year = {1991},
  1479.   month = {April},
  1480.   school = {Duke University},
  1481.   note = {Available as technical report CS-1991-016.},
  1482.   keyword = {dfk, parallel file system, prefetching, MIMD, disk caching,
  1483.   parallel I/O},
  1484.   abstract = {The increasing speed of the most powerful computers, especially
  1485.   multiprocessors, makes it difficult to provide sufficient I/O bandwidth to
  1486.   keep them running at full speed for the largest problems. Trends show that
  1487.   the difference in the speed of disk hardware and the speed of processors is
  1488.   increasing, with I/O severely limiting the performance of otherwise fast
  1489.   machines. This widening access-time gap is known as the ``I/O bottleneck
  1490.   crisis.'' One solution to the crisis, suggested by many researchers, is to
  1491.   use many disks in parallel to increase the overall bandwidth. This
  1492.   dissertation studies some of the file system issues needed to get high
  1493.   performance from parallel disk systems, since parallel hardware alone cannot
  1494.   guarantee good performance. The target systems are large MIMD multiprocessors
  1495.   used for scientific applications, with large files spread over multiple disks
  1496.   attached in parallel. The focus is on automatic caching and prefetching
  1497.   techniques. We show that caching and prefetching can transparently provide
  1498.   the power of parallel disk hardware to both sequential and parallel
  1499.   applications using a conventional file system interface. We also propose a
  1500.   new file system interface (compatible with the conventional interface) that
  1501.   could make it easier to use parallel disks effectively. Our methodology is a
  1502.   mixture of implementation and simulation, using a software testbed that we
  1503.   built to run on a BBN GP1000 multiprocessor. The testbed simulates the disks
  1504.   and fully implements the caching and prefetching policies. Using a synthetic
  1505.   workload as input, we use the testbed in an extensive set of experiments. The
  1506.   results show that prefetching and caching improved the performance of
  1507.   parallel file systems, often dramatically.}
  1508. }
  1509.  
  1510. @InProceedings{kotz:writeback,
  1511.   author = {David Kotz and Carla Schlatter Ellis},
  1512.   title = {Caching and Writeback Policies in Parallel File Systems},
  1513.   booktitle = {1991 IEEE Symposium on Parallel and Distributed Processing},
  1514.   year = {1991},
  1515.   month = {December},
  1516.   pages = {60--67},
  1517.   note = {To appear in the {\em Journal of Parallel and Distributed
  1518.   Computing}.},
  1519.   keyword = {dfk, parallel file system, disk caching, parallel I/O, MIMD},
  1520.   abstract = {Improvements in the processing speed of multiprocessors are
  1521.   outpacing improvements in the speed of disk hardware. Parallel disk I/O
  1522.   subsystems have been proposed as one way to close the gap between processor
  1523.   and disk speeds. Such parallel disk systems require parallel file system
  1524.   software to avoid performance-limiting bottlenecks. We discuss cache
  1525.   management techniques that can be used in a parallel file system
  1526.   implementation. We examine several writeback policies, and give results of
  1527.   experiments that test their performance.},
  1528.   comment = {See also kotz:practical, kotz:jwriteback. [David.Kotz@Dartmouth.edu]}
  1529. }
  1530.  
  1531. @Misc{ksr:overview,
  1532.   key = {KSR},
  1533.   title = {{KSR1} Technology Background},
  1534.   year = {1992},
  1535.   month = {January},
  1536.   howpublished = {Kendall Square Research},
  1537.   keyword = {MIMD, parallel architecture},
  1538.   comment = {Overview of the KSR 1. [David.Kotz@Dartmouth.edu]}
  1539. }
  1540.  
  1541. @TechReport{lee:impl,
  1542.   author = {Edward K. Lee},
  1543.   title = {Software and Performance Issues in the Implementation of a {RAID}
  1544.   Prototype},
  1545.   year = {1990},
  1546.   month = {May},
  1547.   number = {UCB/CSD 90/573},
  1548.   institution = {EECS, Univ. California at Berkeley},
  1549.   keyword = {parallel I/O, disk striping, performance}
  1550. }
  1551.  
  1552. @InProceedings{lee:parity,
  1553.   author = {Edward K. Lee and Randy H. Katz},
  1554.   title = {Performance Consequences of Parity Placement in Disk Arrays},
  1555.   booktitle = {Fourth International Conference on Architectural Support for
  1556.   Programming Languages and Operating Systems},
  1557.   year = {1991},
  1558.   pages = {190--199},
  1559.   keyword = {RAID, reliability, parallel I/O},
  1560.   comment = {Interesting comparison of several parity placement schemes. Boils
  1561.   down to two basic choices, depending on whether read performance or write
  1562.   performance is more important to you. [David.Kotz@Dartmouth.edu]}
  1563. }
  1564.  
  1565. @InProceedings{livny:stripe,
  1566.   author = {M. Livny and S. Khoshafian and H. Boral},
  1567.   title = {Multi-Disk Management Algorithms},
  1568.   booktitle = {Proceedings of the 1987 ACM Sigmetrics Conference on Measurement
  1569.   and Modeling of Computer Systems},
  1570.   year = {1987},
  1571.   month = {May},
  1572.   pages = {69--77},
  1573.   keyword = {parallel I/O, disk striping, disk array}
  1574. }
  1575.  
  1576. @TechReport{lo:disks,
  1577.   author = {Raymond Lo and Norman Matloff},
  1578.   title = {A Probabilistic Limit on the Virtual Size of Replicated File
  1579.   Systems},
  1580.   year = {1989},
  1581.   institution = {Department of EE and CS, UC Davis},
  1582.   keyword = {parallel I/O, replication, file system, disk shadowing},
  1583.   comment = {A look at shadowed disks. If you have $k$ disks set up to read
  1584.   from the disk with the shortest seek, but write to all disks, you have
  1585.   increased reliability, read time like the min of the seeks, and write time
  1586.   like the max of the seeks. It appears that with increasing $k$ you can get
  1587.   good performance. But this paper clearly shows, since writes move all disk
  1588.   heads to the same location, that the effective value of $k$ is actually quite
  1589.   low. Only 4--10 disks are likely to be useful for most traffic loads.
  1590.   [David.Kotz@Dartmouth.edu]}
  1591. }
  1592.  
  1593. @Article{manuel:logjam,
  1594.   author = {Tom Manuel},
  1595.   title = {Breaking the Data-rate Logjam with arrays of small disk drives},
  1596.   journal = {Electronics},
  1597.   year = {1989},
  1598.   month = {February},
  1599.   volume = {62},
  1600.   number = {2},
  1601.   pages = {97--100},
  1602.   keyword = {parallel I/O, disk array, I/O bottleneck},
  1603.   comment = {See also Electronics, Nov. 88 p 24, Dec. 88 p 112. Trade journal
  1604.   short on disk arrays. Very good intro. No technical content. Concentrates on
  1605.   RAID project. Lists several commercial versions. Mostly concentrates on
  1606.   single-controller versions. [David.Kotz@Dartmouth.edu]}
  1607. }
  1608.  
  1609. @Manual{maspar:pario,
  1610.   author = {Maspar},
  1611.   title = {Parallel File {I/O} Routines},
  1612.   year = {1991},
  1613.   keyword = {parallel I/O, multiprocessor file system interface},
  1614.   comment = {Man pages for Maspar file system interface. They have either a
  1615.   single shared file pointer, after which all processors read or write in an
  1616.   interleaved pattern, or individual (plural) file pointer, allowing arbitrary
  1617.   access patterns. Thus, they can do lw, lw1, lps, lpr, seg, and int (see
  1618.   kotz:prefetch), but no self-scheduled patterns. [David.Kotz@Dartmouth.edu]}
  1619. }
  1620.  
  1621. @Article{masters:pario,
  1622.   author = {Del Masters},
  1623.   title = {Improve Disk Subsystem Performance with Multiple Serial Drives in
  1624.   Parallel},
  1625.   journal = {Computer Technology Review},
  1626.   year = {1987},
  1627.   month = {July},
  1628.   volume = {7},
  1629.   number = {9},
  1630.   pages = {76--77},
  1631.   keyword = {parallel I/O},
  1632.   comment = {Information about the early Maximum Strategy disk array, which
  1633.   striped over 4 disk drives, apparently synchronously. [David.Kotz@Dartmouth.edu]}
  1634. }
  1635.  
  1636. @Article{matloff:multidisk,
  1637.   author = {Norman S. Matloff},
  1638.   title = {A Multiple-Disk System for both Fault Tolerance and Improved
  1639.   Performance},
  1640.   journal = {IEEE Transactions on Reliability},
  1641.   year = {1987},
  1642.   month = {June},
  1643.   volume = {R-36},
  1644.   number = {2},
  1645.   pages = {199--201},
  1646.   keyword = {parallel I/O, reliability, disk shadowing},
  1647.   comment = {Variation on mirrored disks using more than 2 disks, to spread the
  1648.   files around. Good performance increases. [David.Kotz@Dartmouth.edu]}
  1649. }
  1650.  
  1651. @InProceedings{meador:array,
  1652.   author = {Wes E. Meador},
  1653.   title = {Disk Array Systems},
  1654.   booktitle = {Proceedings of IEEE Compcon},
  1655.   year = {1989},
  1656.   month = {Spring},
  1657.   pages = {143--146},
  1658.   keyword = {parallel I/O, disk array, disk striping},
  1659.   comment = {Describes {\em Strategy 2 Disk Array Controller}, which allows 4
  1660.   or 8 drives, hardware striped, with parity drive and 0-4 hot spares. Up to 4
  1661.   channels to CPU(s). Logical block interface. Defects, errors, formatting,
  1662.   drive failures all handled automatically. Peak 40 MB/s data transfer on each
  1663.   channel. [David.Kotz@Dartmouth.edu]}
  1664. }
  1665.  
  1666. @TechReport{milenkovic:model,
  1667.   author = {Milan Milenkovic},
  1668.   title = {A Model for Multiprocessor {I/O}},
  1669.   year = {1989},
  1670.   month = {July},
  1671.   number = {89-CSE-30},
  1672.   institution = {Dept. of Computer Science and Engineering, Southern Methodist
  1673.   University},
  1674.   keyword = {multiprocessor I/O, I/O architecture, distributed systems},
  1675.   comment = {Advocates using dedicated server processors for all I/O, e.g., disk
  1676.   server, terminal server, network server. Pass I/O requests and data via
  1677.   messages or RPC calls over the interconnect (here a shared bus). Server
  1678.   handles packaging, blocking, caching, errors, interrupts, and so forth,
  1679.   freeing the main processors and the interconnect from all this activity.
  1680.   Benefits: encapsulates I/O-related stuff in specific places, accomodates
  1681.   heterogeneity, improves performance. Nice idea, but allows for an I/O
  1682.   bottleneck, unless server can handle all the demand. Otherwise would need
  1683.   multiple servers, more expensive than just multiple controllers.
  1684.   [David.Kotz@Dartmouth.edu]}
  1685. }
  1686.  
  1687. @Article{mokhoff:pario,
  1688.   author = {Nicholas Mokhoff},
  1689.   title = {Parallel Disk Assembly Packs 1.5 {GBytes}, runs at 4 {MBytes/s}},
  1690.   journal = {Electronic Design},
  1691.   year = {1987},
  1692.   month = {November},
  1693.   pages = {45--46},
  1694.   keyword = {parallel I/O, I/O, disk hardware, disk striping, reliability},
  1695.   comment = {Commercially available: Micropolis Systems' Parallel Disk 1800
  1696.   series. Four disks plus one parity disk, synchronized and byte-interleaved.
  1697.   SCSI interface. Total capacity 1.5 GBytes, sustained transfer rate of 4
  1698.   MBytes/s. MTTF 140,000 hours. Hard and soft errors corrected in real-time.
  1699.   Failed drives can be replaced while system is running.
  1700.   [David.Kotz@Dartmouth.edu]}
  1701. }
  1702.  
  1703. @Article{moren:controllers,
  1704.   author = {William D. Moren},
  1705.   title = {Design of Controllers is Key Element in Disk Subsystem Throughput},
  1706.   journal = {Computer Technology Review},
  1707.   year = {1988},
  1708.   month = {Spring},
  1709.   pages = {71--73},
  1710.   keyword = {parallel I/O, disk hardware},
  1711.   comment = {A short paper on some basic techniques used by disk controllers to
  1712.   improve throughput: seek optimization, request combining, request queuing,
  1713.   using multiple drives in parallel, scatter/gather DMA, data caching,
  1714.   read-ahead, cross-track read-ahead, write-back caching, segmented caching,
  1715.   reduced latency (track buffering), and format skewing. [Most of these are
  1716.   already handled in Unix file systems.] [David.Kotz@Dartmouth.edu]}
  1717. }
  1718.  
  1719. @InProceedings{muller:multi,
  1720.   author = {Keith Muller and Joseph Pasquale},
  1721.   title = {A High Performance Multi-Structured File System Design},
  1722.   booktitle = {Proceedings of the Thirteenth ACM Symposium on Operating Systems
  1723.   Principles},
  1724.   year = {1991},
  1725.   pages = {56--67},
  1726.   keyword = {file system, disk striping, disk mirroring}
  1727. }
  1728.  
  1729. @InProceedings{nagashima:pario,
  1730.   author = {Umpei Nagashima and Takashi Shibata and Hiroshi Itoh and Minoru
  1731.   Gotoh},
  1732.   title = {An Improvement of {I/O} Function for Auxiliary Storage: {Parallel
  1733.   I/O} for a Large Scale Supercomputing},
  1734.   booktitle = {1990 International Conference on Supercomputing},
  1735.   year = {1990},
  1736.   pages = {48--59},
  1737.   keyword = {parallel I/O},
  1738.   comment = {Poorly-written paper about the use of parallel I/O channels to
  1739.   access striped disks, in parallel from a supercomputer. They {\em chain}\/
  1740.   (i.e., combine) requests to a disk for large contiguous accesses.
  1741.   [David.Kotz@Dartmouth.edu]}
  1742. }
  1743.  
  1744. @TechReport{ncr:3600,
  1745.   key = {NCR},
  1746.   title = {{NCR 3600} Product Description},
  1747.   year = {1991},
  1748.   month = {September},
  1749.   number = {ST-2119-91},
  1750.   institution = {NCR},
  1751.   address = {San Diego},
  1752.   keyword = {multiprocessor architecture, MIMD, parallel I/O},
  1753.   comment = {Has 1-32 50MHz Intel 486 processors. Parallel independent disks on
  1754.   the disk nodes, separate from the processor nodes. Tree interconnect. Aimed
  1755.   at database applications. [David.Kotz@Dartmouth.edu]}
  1756. }
  1757.  
  1758. @Misc{ncube:overview,
  1759.   key = {nC},
  1760.   author = {nCUBE Corporation},
  1761.   title = {{nCUBE~2} Supercomputers: {Technical} Overview},
  1762.   year = {1990},
  1763.   howpublished = {Brochure},
  1764.   keyword = {parallel architecture, nCUBE},
  1765.   comment = {Gives a little I/O information. See also hayes:nCUBE
  1766.   [David.Kotz@Dartmouth.edu]}
  1767. }
  1768.  
  1769. @InProceedings{ng:diskarray,
  1770.   author = {Spencer Ng},
  1771.   title = {Some Design Issues of Disk Arrays},
  1772.   booktitle = {Proceedings of IEEE Compcon},
  1773.   year = {1989},
  1774.   month = {Spring},
  1775.   pages = {137--142},
  1776.   note = {San Francisco, CA},
  1777.   keyword = {parallel I/O, disk array},
  1778.   comment = {Discusses disk arrays and striping. Transfer size is important to
  1779.   striping success: small size transfers are better off with independent disks.
  1780.   Sychronized rotation is especially important for small transfer sizes, since
  1781.   then the increased rotational delays dominate. Fine grain striping involves
  1782.   less assembly/disassembly delay, but coarse grain (block) striping allows for
  1783.   request parallelism. Fine grain striping wastes capacity due to fixed size
  1784.   formatting overhead. He also derives exact MTTF equation for 1-failure
  1785.   tolerance and on-line repair. [David.Kotz@Dartmouth.edu]}
  1786. }
  1787.  
  1788. @InProceedings{ng:interleave,
  1789.   author = {S. Ng and D. Lang and R. Selinger},
  1790.   title = {Trade-offs Between Devices and Paths in Achieving Disk
  1791.   Interleaving},
  1792.   booktitle = {Proceedings of the 15th Annual International Symposium on
  1793.   Computer Architecture},
  1794.   year = {1988},
  1795.   pages = {196--201},
  1796.   keyword = {parallel I/O, disk hardware, disk caching, I/O bottleneck},
  1797.   comment = {Compares four different ways of restructuring IBM disk controllers
  1798.   and channels to obtain more parallelism. They use parallel heads or parallel
  1799.   actuators. The best results come when they replicate the control electronics
  1800.   to maintain the number of data paths through the controller. Otherwise the
  1801.   controller bottleneck reduces performance. Generally, for large or small
  1802.   transfer sizes, parallel heads with replication gave better performance.
  1803.   [David.Kotz@Dartmouth.edu]}
  1804. }
  1805.  
  1806. @InProceedings{nishino:sfs,
  1807.   author = {H. Nishino and S. Naka and K Ikumi},
  1808.   title = {High Performance File System for Supercomputing Environment},
  1809.   booktitle = {Proceedings of Supercomputing '89},
  1810.   year = {1989},
  1811.   pages = {747--756},
  1812.   keyword = {supercomputer, file system, parallel I/O},
  1813.   comment = {A modification to the Unix file system to allow for supercomputer
  1814.   access. Workload: file size from few KB to few GB, I/O operation size from
  1815.   few bytes to hundreds of MB. Generally programs split into I/O-bound and
  1816.   CPU-bound parts. Sequential and random access. Needs: giant files (bigger
  1817.   than device), peak hardware performance for large files, NFS access. Their FS
  1818.   is built into Unix ``transparently''. Space allocated in clusters, rather
  1819.   than blocks; clusters might be as big as a cylinder. Allows for efficient,
  1820.   large files. Mentions parallel disks as part of a ``virtual volume'' but does
  1821.   not elaborate. Prefetching within a cluster. [David.Kotz@Dartmouth.edu]}
  1822. }
  1823.  
  1824. @InProceedings{nodine:sort,
  1825.   author = {Mark H. Nodine and Jeffrey Scott Vitter},
  1826.   title = {Large-Scale Sorting in Parallel Memories},
  1827.   booktitle = {SPAA},
  1828.   year = {1991},
  1829.   pages = {29--39},
  1830.   keyword = {external sorting, file access pattern, parallel I/O},
  1831.   comment = {Describes algorithms for external sorting that are optimal in the
  1832.   number of I/Os. Proposes a couple of fairly-realistic memory hierarchy
  1833.   models. [David.Kotz@Dartmouth.edu]}
  1834. }
  1835.  
  1836. @TechReport{ogata:diskarray,
  1837.   author = {Mikito Ogata and Michael J. Flynn},
  1838.   title = {A Queueing Analysis for Disk Array Systems},
  1839.   year = {1990},
  1840.   number = {CSL-TR-90-443},
  1841.   institution = {Stanford University},
  1842.   keyword = {disk array, performance analysis},
  1843.   comment = {Fairly complex analysis of a multiprocessor attached to a disk
  1844.   array system through a central server that is the buffer. Assumes
  1845.   task-oriented model for parallel system, where tasks can be assigned to any
  1846.   CPU; this makes for an easy model. Like Reddy, they compare declustering and
  1847.   striping (they call them striped and synchronized disks).
  1848.   [David.Kotz@Dartmouth.edu]}
  1849. }
  1850.  
  1851. @Article{olson:random,
  1852.   author = {Thomas M. Olson},
  1853.   title = {Disk Array Performance in a Random {I/O} Environment},
  1854.   journal = {Computer Architecture News},
  1855.   year = {1989},
  1856.   month = {September},
  1857.   volume = {17},
  1858.   number = {5},
  1859.   pages = {71--77},
  1860.   keyword = {I/O benchmark, transaction processing},
  1861.   comment = {See wolman:iobench. Used IOBENCH to compare normal disk
  1862.   configuration with striped disks, RAID level 1, and RAID level 5, under a
  1863.   random I/O workload. Multiple disks with files on different disks gave good
  1864.   performance (high throughput and low response time) when multiple users.
  1865.   Striping ensures balanced load, similar performance. RAID level 1 or level 5
  1866.   ensures reliability at performance cost over striping, but still good.
  1867.   Especially sensitive to write/read ratio --- performance lost for large
  1868.   number of writes. [David.Kotz@Dartmouth.edu]}
  1869. }
  1870.  
  1871. @TechReport{park:pario,
  1872.   author = {Arvin Park and K. Balasubramanian},
  1873.   title = {Providing Fault Tolerance in Parallel Secondary Storage Systems},
  1874.   year = {1986},
  1875.   month = {November},
  1876.   number = {CS-TR-057-86},
  1877.   institution = {Department of Computer Science, Princeton University},
  1878.   keyword = {parallel I/O, reliability},
  1879.   comment = {They use ECC with one or more parity drives in bit-interleaved
  1880.   systems, and on-line regeneration of failed drives from spares. More
  1881.   cost-effective than mirrored disks. [David.Kotz@Dartmouth.edu]}
  1882. }
  1883.  
  1884. @InProceedings{patterson:raid,
  1885.   author = {David Patterson and Garth Gibson and Randy Katz},
  1886.   title = {A case for redundant arrays of inexpensive disks {(RAID)}},
  1887.   booktitle = {ACM SIGMOD Conference},
  1888.   year = {1988},
  1889.   month = {June},
  1890.   pages = {109--116},
  1891.   keyword = {parallel I/O, RAID, reliability, cost analysis, I/O bottleneck,
  1892.   disk array, OS92W},
  1893.   comment = {Make a good case for the upcoming I/O crisis, compare single large
  1894.   expensive disks (SLED) with small cheap disks. Outline five levels of RAID
  1895.   the give different reliabilities, costs, and performances. Block-interleaved
  1896.   with a single check disk (level 4) or with check blocks interspersed (level
  1897.   5) seem to give best performance for supercomputer I/O or database I/O or
  1898.   both. Note: the TR by the same name (UCB/CSD 87/391) is essentially
  1899.   identical. [David.Kotz@Dartmouth.edu]}
  1900. }
  1901.  
  1902. @InProceedings{patterson:raid2,
  1903.   author = {David Patterson and Peter Chen and Garth Gibson and Randy H. Katz},
  1904.   title = {Introduction to Redundant Arrays of Inexpensive Disks {(RAID)}},
  1905.   booktitle = {Proceedings of IEEE Compcon},
  1906.   year = {1989},
  1907.   month = {Spring},
  1908.   pages = {112--117},
  1909.   keyword = {parallel I/O, RAID, reliability, cost analysis, I/O bottleneck,
  1910.   disk array},
  1911.   comment = {A short version of patterson:raid, with some slight updates.
  1912.   [David.Kotz@Dartmouth.edu]}
  1913. }
  1914.  
  1915. @InProceedings{pierce:pario,
  1916.   author = {Paul Pierce},
  1917.   title = {A Concurrent File System for a Highly Parallel Mass Storage System},
  1918.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  1919.   Applications},
  1920.   year = {1989},
  1921.   pages = {155--160},
  1922.   keyword = {parallel I/O, hypercube, Intel iPSC/2, parallel file system},
  1923.   comment = {Chose to tailor system for high performance for large files, read
  1924.   in large chunks. Uniform logical file system view, Unix stdio interface.
  1925.   Blocks scattered over all disks, but not striped. Blocksize 4K optimizes
  1926.   message-passing performance without using blocks that are too big.
  1927.   Tree-directory is stored in ONE file and managed by ONE process, so opens are
  1928.   bottlenecked, but that is not their emphasis. File headers, however, are
  1929.   scattered. The file header info contains a list of blocks. File header is
  1930.   managed by disk process on its I/O node. Data caching is done only at the I/O
  1931.   node of the originating disk drive. Read-ahead is used but not detailed here.
  1932.   [David.Kotz@Dartmouth.edu]}
  1933. }
  1934.  
  1935. @InProceedings{pratt:twofs,
  1936.   author = {Terrence W. Pratt and James C. French and Phillip M. Dickens and
  1937.   Janet, Jr., Stanley A.},
  1938.   title = {A Comparison of the Architecture and Performance of Two Parallel
  1939.   File Systems},
  1940.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  1941.   Applications},
  1942.   year = {1989},
  1943.   pages = {161--166},
  1944.   keyword = {parallel I/O, Intel iPSC/2, nCUBE},
  1945.   comment = {Simple comparison of the iPSC/2 and nCUBE/10 parallel I/O systems.
  1946.   Short description of each system, with simple transfer rate measurements. See
  1947.   also french:ipsc2io-tr. [David.Kotz@Dartmouth.edu]}
  1948. }
  1949.  
  1950. @InProceedings{reddy:hyperio1,
  1951.   author = {A. L. Reddy and P. Banerjee and Santosh G. Abraham},
  1952.   title = {{I/O} Embedding in Hypercubes},
  1953.   booktitle = {Proceedings of the 1988 International Conference on Parallel
  1954.   Processing},
  1955.   year = {1988},
  1956.   volume = {1},
  1957.   pages = {331--338},
  1958.   keyword = {parallel I/O, hypercube},
  1959.   comment = {Emphasis is on adjacency (as usual for hypercube stuff), though
  1960.   this seems to be less important with more machines using fancy routers. Is
  1961.   also implies (and they assume) that data is distributed well across the disks
  1962.   so no data needs to move beyond the neighbors of an I/O node. Still, the idea
  1963.   of adjacency is good since it allows for good data distribution while not
  1964.   requiring it, and for balancing I/O procs among procs in a good way. Also
  1965.   avoids messing up the hypercube regularity with dedicated I/O nodes.
  1966.   [David.Kotz@Dartmouth.edu]}
  1967. }
  1968.  
  1969. @InProceedings{reddy:hyperio2,
  1970.   author = {A. L. Reddy and P. Banerjee},
  1971.   title = {{I/O} issues for hypercubes},
  1972.   booktitle = {International Conference on Supercomputing},
  1973.   year = {1989},
  1974.   pages = {72--81},
  1975.   keyword = {parallel I/O, hypercube},
  1976.   comment = {See reddy:hyperio3 for extended version. [David.Kotz@Dartmouth.edu]}
  1977. }
  1978.  
  1979. @Article{reddy:hyperio3,
  1980.   author = {A. L. Narasimha Reddy and Prithviraj Banerjee},
  1981.   title = {Design, Analysis, and Simulation of {I/O} Architectures for
  1982.   Hypercube Multiprocessors},
  1983.   journal = {IEEE Transactions on Parallel and Distributed Systems},
  1984.   year = {1990},
  1985.   month = {April},
  1986.   volume = {1},
  1987.   number = {2},
  1988.   pages = {140--151},
  1989.   keyword = {parallel I/O, hypercube},
  1990.   comment = {An overall paper restating their embedding technique from
  1991.   reddy:hyperio1, plus a little bit of evaluation along the lines of
  1992.   reddy:pario2, plus some ideas about matrix layout on the disks. They claim
  1993.   that declustering is important, since synchronized disks do not provide
  1994.   enough parallelism, especially in the communication across the hypercube
  1995.   (since the synchronized disks must hang off one node).
  1996.   [David.Kotz@Dartmouth.edu]}
  1997. }
  1998.  
  1999. @InProceedings{reddy:notsame,
  2000.   author = {A. L. Narasimha Reddy},
  2001.   title = {Reads and Writes: When {I/O}s Aren't Quite the Same},
  2002.   booktitle = {Proceedings of the Twenty-Fifth Annual Hawaii International
  2003.   Conference on System Sciences},
  2004.   year = {1992},
  2005.   pages = {84--92},
  2006.   keyword = {disk array}
  2007. }
  2008.  
  2009. @InProceedings{reddy:pario,
  2010.   author = {A. Reddy and P. Banerjee},
  2011.   title = {An Evaluation of multiple-disk {I/O} systems},
  2012.   booktitle = {Proceedings of the 1989 International Conference on Parallel
  2013.   Processing},
  2014.   year = {1989},
  2015.   pages = {I:315--322},
  2016.   keyword = {parallel I/O, disk array, disk striping},
  2017.   comment = {see also expanded version reddy:pario2 [David.Kotz@Dartmouth.edu]}
  2018. }
  2019.  
  2020. @Article{reddy:pario2,
  2021.   author = {A. Reddy and P. Banerjee},
  2022.   title = {Evaluation of multiple-disk {I/O} systems},
  2023.   journal = {IEEE Transactions on Computers},
  2024.   year = {1989},
  2025.   month = {December},
  2026.   volume = {38},
  2027.   pages = {1680--1690},
  2028.   keyword = {parallel I/O, disk array, disk striping},
  2029.   comment = {see version reddy:pario. Compares declustered disks (sortof
  2030.   MIMD-like) to synchronized-interleaved (SIMD-like). Declustering needed for
  2031.   scalability, and is better for scientific workloads. Handles large
  2032.   parallelism needed for scientific workloads and for RAID-like architectures.
  2033.   Synchronized interleaving is better for general file system workloads due to
  2034.   better utilization and reduction of seek overhead. [David.Kotz@Dartmouth.edu]}
  2035. }
  2036.  
  2037. @Article{reddy:pario3,
  2038.   author = {A. L. Reddy and Prithviraj Banerjee},
  2039.   title = {A Study of Parallel Disk Organizations},
  2040.   journal = {Computer Architecture News},
  2041.   year = {1989},
  2042.   month = {September},
  2043.   volume = {17},
  2044.   number = {5},
  2045.   pages = {40--47},
  2046.   keyword = {parallel I/O, disk array, disk striping},
  2047.   comment = {nothing new over expanded version reddy:pario2, little different
  2048.   from reddy:pario [David.Kotz@Dartmouth.edu]}
  2049. }
  2050.  
  2051. @InProceedings{reddy:perfectio,
  2052.   author = {A. L. Narasimha Reddy and Prithviraj Banerjee},
  2053.   title = {A Study of {I/O} Behavior of {Perfect} Benchmarks on a
  2054.   Multiprocessor},
  2055.   booktitle = {Proceedings of the 17th Annual International Symposium on
  2056.   Computer Architecture},
  2057.   year = {1990},
  2058.   pages = {312--321},
  2059.   keyword = {parallel I/O, file access pattern, workload, multiprocessor file
  2060.   system, benchmark},
  2061.   comment = {Using five applications from the Perfect benchmark suite, they
  2062.   studied both implicit (paging) and explicit (file) I/O activity. They found
  2063.   that the paging activity was relatively small and that sequential access to
  2064.   VM was common. All access to files was sequential, though this may be due to
  2065.   the programmer's belief that the file system is sequential. Buffered I/O
  2066.   would help to make transfers bigger and more efficient, but there wasn't
  2067.   enough rereferencing to make caching useful. [David.Kotz@Dartmouth.edu]}
  2068. }
  2069.  
  2070. @Article{rettberg:monarch,
  2071.   author = {Randall D. Rettberg and William R. Crowther and Philip P. Carvey
  2072.   and Raymond S. Tomlinson},
  2073.   title = {The {Monarch Parallel Processor} Hardware Design},
  2074.   journal = {IEEE Computer},
  2075.   year = {1990},
  2076.   month = {April},
  2077.   volume = {23},
  2078.   number = {4},
  2079.   pages = {18--30},
  2080.   keyword = {MIMD, parallel architecture, shared memory, parallel I/O},
  2081.   comment = {This describes the Monarch computer from BBN. It will never be
  2082.   built, though the article does not say this. 65K processors and memory
  2083.   modules. 65GB RAM. Bfly-style switch in dance-hall layout. Switch is
  2084.   synchronous; one switch time is a {\em frame} (one microsecond, equal to 3
  2085.   processor cycles) and all processors may reference memory in one frame time.
  2086.   Local I-cache only.y Contention reduces full bandwidth by 16 percent. Full
  2087.   64-bit machine. Custom VLSI. Each memory location has 8 tag bits. One allows
  2088.   for a location to be locked by a processor. Thus, any FetchAndOp or
  2089.   full/empty model can be supported. I/O is done by adding I/O processors (up
  2090.   to 2K in a 65K-proc machine) in the switch. They plan 200 disks, each with an
  2091.   I/O processor, for 65K nodes. They would spread each block over 9 disks,
  2092.   including one for parity (essentially RAID). [David.Kotz@Dartmouth.edu]}
  2093. }
  2094.  
  2095. @InProceedings{salem:diskstripe,
  2096.   author = {Kenneth Salem and Hector Garcia-Molina},
  2097.   title = {Disk Striping},
  2098.   booktitle = {IEEE 1986 Conference on Data Engineering},
  2099.   year = {1986},
  2100.   pages = {336--342},
  2101.   keyword = {parallel I/O, disk striping, disk array},
  2102.   comment = {See the techreport salem:striping for a nearly identical but more
  2103.   detailed version. [David.Kotz@Dartmouth.edu]}
  2104. }
  2105.  
  2106. @TechReport{salem:striping,
  2107.   author = {Kenneth Salem and Hector Garcia-Molina},
  2108.   title = {Disk Striping},
  2109.   year = {1984},
  2110.   month = {December},
  2111.   number = {332},
  2112.   institution = {EECS Dept. Princeton Univ.},
  2113.   keyword = {parallel I/O, disk striping, disk array},
  2114.   comment = {Cite salem:diskstripe instead. Basic paper on striping. For
  2115.   uniprocessor, single-user machine. Interleaving asynchronous, even without
  2116.   matching disk locations though this is discussed. All done with models.
  2117.   [David.Kotz@Dartmouth.edu]}
  2118. }
  2119.  
  2120. @InProceedings{salmon:cubix,
  2121.   author = {John Salmon},
  2122.   title = {{CUBIX: Programming} Hypercubes without Programming Hosts},
  2123.   booktitle = {Proceedings of the Second Conference on Hypercube
  2124.   Multiprocessors},
  2125.   year = {1986},
  2126.   pages = {3--9},
  2127.   keyword = {hypercube, multiprocessor file system interface},
  2128.   comment = {Previously, hypercubes were programmed as a combination of host
  2129.   and node programs. Salmon proposes to use a universal host program that acts
  2130.   essentially as a file server, responding to requests from the node programs.
  2131.   Two modes: crystalline, where node programs run in loose synchrony, and
  2132.   amorphous, where node programs are asynchronous. In the crystalline case,
  2133.   files have a single file pointer and are either single- or multiple- access;
  2134.   single access means all nodes must simultaneously issue the same request;
  2135.   multiple access means they all simultaneously issue the same request with
  2136.   different parameters, giving an interleaved pattern. Amorphous allows
  2137.   asynchronous activity, with separate file pointers per node.
  2138.   [David.Kotz@Dartmouth.edu]}
  2139. }
  2140.  
  2141. @TechReport{schulze:raid,
  2142.   author = {Martin Schulze},
  2143.   title = {Considerations in the Design of a {RAID} Prototype},
  2144.   year = {1988},
  2145.   month = {August},
  2146.   number = {UCB/CSD 88/448},
  2147.   institution = {UC Berkeley},
  2148.   keyword = {parallel I/O, RAID, disk array, disk hardware},
  2149.   comment = {Very practical description of the RAID I prototype.
  2150.   [David.Kotz@Dartmouth.edu]}
  2151. }
  2152.  
  2153. @InProceedings{schulze:raid2,
  2154.   author = {Martin Schulze and Garth Gibson and Randy Katz and David
  2155.   Patterson},
  2156.   title = {How Reliable is a {RAID}?},
  2157.   booktitle = {Proceedings of IEEE Compcon},
  2158.   year = {1989},
  2159.   month = {Spring},
  2160.   keyword = {parallel I/O, reliability, RAID, disk array, disk hardware},
  2161.   comment = {Published version of second paper in chen:raid. Some overlap with
  2162.   schulze:raid, though that paper has more detail. [David.Kotz@Dartmouth.edu]}
  2163. }
  2164.  
  2165. @InProceedings{shin:hartsio,
  2166.   author = {Kang G. Shin and Greg Dykema},
  2167.   title = {A Distributed {I/O} Architecture for {HARTS}},
  2168.   booktitle = {Proceedings of the 17th Annual International Symposium on
  2169.   Computer Architecture},
  2170.   year = {1990},
  2171.   pages = {332--342},
  2172.   keyword = {parallel I/O, multiprocessor architecture, MIMD, fault tolerance},
  2173.   comment = {HARTS is a multicomputer connected with a wrapped hexagonal mesh,
  2174.   with an emphasis on real-time and fault tolerance. The mesh consists of
  2175.   network routing chips. Hanging off each is a small bus-based multiprocessor
  2176.   ``node''. They consider how to integrate I/O devices into this architecture:
  2177.   attach device controllers to processors, to network routers, to node busses,
  2178.   or via a separate network. They decided to compromise and hang each I/O
  2179.   controller off three network routers, in the triangles of the hexagonal mesh.
  2180.   This keeps the traffic off of the node busses, and allows multiple paths to
  2181.   each controller. They discuss the reachability and hop count in the presence
  2182.   of failed nodes and links. [David.Kotz@Dartmouth.edu]}
  2183. }
  2184.  
  2185. @Article{smotherman:taxonomy,
  2186.   author = {Mark Smotherman},
  2187.   title = {A Sequencing-based Taxonomy of {I/O} Systems and Review of
  2188.   Historical Machines},
  2189.   journal = {Computer Architecture News},
  2190.   year = {1989},
  2191.   month = {September},
  2192.   volume = {17},
  2193.   number = {5},
  2194.   pages = {5--15},
  2195.   keyword = {I/O architecture, historical summary},
  2196.   comment = {Classifies I/O systems by how they initiate and terminate I/O.
  2197.   Uniprocessor and Multiprocessor systems. [David.Kotz@Dartmouth.edu]}
  2198. }
  2199.  
  2200. @Misc{snir:hpfio,
  2201.   author = {Marc Snir},
  2202.   title = {Proposal for {IO}},
  2203.   year = {1992},
  2204.   month = {July 7},
  2205.   howpublished = {Posted to HPFF I/O Forum by
  2206.   SNIR%YKTVMV.bitnet@cunyvm.cuny.edu},
  2207.   note = {Draft.},
  2208.   keyword = {parallel I/O, multiprocessor file system interface},
  2209.   comment = {An outline of two possible ways to specify mappings of arrays to
  2210.   storage nodes in a multiprocessor, and to make unformatted parallel transfers
  2211.   of multiple records. Seems to apply only to arrays, and to files that hold
  2212.   only arrays. It keeps the linear structure of files as sequences of records,
  2213.   but in some cases does not preserve the order of data items or of fields
  2214.   within subrecords. Difficult to understand unless you know HPF and Fortran
  2215.   90. [David.Kotz@Dartmouth.edu]}
  2216. }
  2217.  
  2218. @InProceedings{solworth:mirror,
  2219.   author = {John A. Solworth and Cyril U. Orji},
  2220.   title = {Distorted Mirrors},
  2221.   booktitle = {Proceedings of the First International Conference on Parallel
  2222.   and Distributed Information Systems},
  2223.   year = {1991},
  2224.   pages = {10--17},
  2225.   keyword = {disk mirror, parallel I/O},
  2226.   comment = {Write one disk (the master) in the usual way, and write the slave
  2227.   disk at the closest free block. Actually, logically partition the two disks
  2228.   so that each disk has a master partition and a slave partition. Up to 80\%
  2229.   improvement in small-write performance, while retaining good sequential read
  2230.   performance. [David.Kotz@Dartmouth.edu]}
  2231. }
  2232.  
  2233. @MastersThesis{stabile:disks,
  2234.   author = {James Joseph Stabile},
  2235.   title = {Disk Scheduling Algorithms for a Multiple Disk System},
  2236.   year = {1988},
  2237.   school = {UC Davis},
  2238.   keyword = {parallel I/O, parallel file system, mirrored disk, disk
  2239.   scheduling},
  2240.   comment = {Describes simulation based on model of disk access pattern.
  2241.   Multiple-disk system, much like in matloff:multidisk. Files stored in two
  2242.   copies, each on a separate disk, but there are more than two disks, so this
  2243.   differs from mirroring. He compares several disk scheduling algorithms. A
  2244.   variant of SCAN seems to be the best. He makes many statements that don't
  2245.   seem to follow from his reasoning. His model does not include sequentiality
  2246.   or prefetching in any direct way. [David.Kotz@Dartmouth.edu]}
  2247. }
  2248.  
  2249. @PhdThesis{staelin:phd,
  2250.   author = {Carl Hudson Staelin},
  2251.   title = {High Performance File System Design},
  2252.   year = {1991},
  2253.   month = {October},
  2254.   school = {Princeton University},
  2255.   note = {Available as TR CS-TR-347-91},
  2256.   keyword = {file system, parallel I/O},
  2257.   comment = {His new filesystem is called iPcress, and has a few key features:
  2258.   it is self-tuning based on dynamic statistics collected on each file; it
  2259.   reorganizes during idle times; and it uses several caching and allocation
  2260.   strategies, not just one, depending on the situation. The basic idea is to
  2261.   make {\em smart\/} file systems. A few performance results. Clustering active
  2262.   data in the middle of the disk gives better throughput. Meta-data is
  2263.   contained in files. [David.Kotz@Dartmouth.edu]}
  2264. }
  2265.  
  2266. @Article{stone:query,
  2267.   author = {Harold S. Stone},
  2268.   title = {Parallel Querying of Large Databases: {A} Case Study},
  2269.   journal = {IEEE Computer},
  2270.   year = {1987},
  2271.   month = {October},
  2272.   volume = {20},
  2273.   number = {10},
  2274.   pages = {11--21},
  2275.   keyword = {parallel I/O, database, SIMD, connection machine},
  2276.   comment = {See also IEEE Computer, Jan 1988, p. 8 and 10. Examines a database
  2277.   query that is parallelized for the Connection Machine. He shows that in many
  2278.   cases, a smarter serial algorithm that reads only a portion of the database
  2279.   (through an index) will be faster than 64K processors reading the whole
  2280.   database. Uses a simple model for the machines to show this. Reemphasizes the
  2281.   point of Boral and DeWitt that I/O is the bottleneck of a database machine,
  2282.   and that parallelizing the processing will not necessarily help a great deal.
  2283.   [David.Kotz@Dartmouth.edu]}
  2284. }
  2285.  
  2286. @InProceedings{stonebraker:radd,
  2287.   author = {Michael Stonebraker and Gerhard A. Schloss},
  2288.   title = {Distributed {RAID} --- {A} New Multiple Copy Algorithm},
  2289.   booktitle = {Proceedings of 6th International Data Engineering Conference},
  2290.   year = {1990},
  2291.   pages = {430--437},
  2292.   keyword = {disk striping, reliability},
  2293.   comment = {This is about ``RADD'', a distributed form of RAID. Meant for
  2294.   cases where the disks are physically distributed around several sites, and no
  2295.   one controller controls them all. Much lower space overhead than any
  2296.   mirroring technique, with comparable normal-mode performance at the expense
  2297.   of failure-mode performance. [David.Kotz@Dartmouth.edu]}
  2298. }
  2299.  
  2300. @TechReport{stonebraker:xprs,
  2301.   author = {Michael Stonebraker and Randy Katz and David Patterson and John
  2302.   Ousterhout},
  2303.   title = {The Design of {XPRS}},
  2304.   year = {1988},
  2305.   month = {March},
  2306.   number = {UCB/ERL M88/19},
  2307.   institution = {UC Berkeley},
  2308.   keyword = {parallel I/O, disk array, RAID, Sprite, disk hardware, database},
  2309.   comment = {Designing a DBMS for Sprite and RAID. High availability, high
  2310.   performance. Shared memory multiprocessor. Allocates extents to files that
  2311.   are a interleaved over a variable number of disks, and over a contiguous set
  2312.   of tracks on those disks. [David.Kotz@Dartmouth.edu]}
  2313. }
  2314.  
  2315. @Unpublished{taber:metadisk,
  2316.   author = {David Taber},
  2317.   title = {{MetaDisk} Driver Technical Description},
  2318.   year = {1990},
  2319.   month = {October},
  2320.   note = {SunFlash electronic mailing list 22(9)},
  2321.   keyword = {disk mirroring, parallel I/O},
  2322.   comment = {MetaDisk is a addition to the Sun SPARCstation server kernel. It
  2323.   allows disk mirroring between any two local disk partitions, or concatenation
  2324.   of several disk partitions into one larger partition. Can span up to 4
  2325.   partitions simultaneously. Appears not to be striped, just allows bigger
  2326.   partitions, and (by chance) some parallel I/O for large files.
  2327.   [David.Kotz@Dartmouth.edu]}
  2328. }
  2329.  
  2330. @Booklet{teradata:dbc,
  2331.   key = {Teradata},
  2332.   title = {{DBC/1012}},
  2333.   year = {1988},
  2334.   howpublished = {Teradata Corporation Booklet},
  2335.   keyword = {parallel I/O, database machine, Teradata}
  2336. }
  2337.  
  2338. @TechReport{think:cm-2,
  2339.   key = {TMC},
  2340.   title = {{Connection Machine} Model {CM-2} Technical Summary},
  2341.   year = {1987},
  2342.   month = {April},
  2343.   number = {HA87-4},
  2344.   institution = {Thinking Machines},
  2345.   keyword = {parallel I/O, connection machine, disk hardware, SIMD},
  2346.   comment = {I/O and Data Vault, pp. 27--30 [David.Kotz@Dartmouth.edu]}
  2347. }
  2348.  
  2349. @Book{think:cm5,
  2350.   key = {TMC},
  2351.   title = {The {Connection Machine} {CM-5} Technical Summary},
  2352.   year = {1991},
  2353.   month = {October},
  2354.   publisher = {Thinking Machines Corporation},
  2355.   keyword = {computer architecture, connection machine, MIMD, SIMD, parallel
  2356.   I/O},
  2357.   comment = {Some detail but still skips over some key aspects (like
  2358.   communication topology. Neat communications support makes for user-mode
  2359.   message-passing, broadcasting, reductions, all built in. Lots of info here.
  2360.   File system calls allows data to be transferred in parallel directly from I/O
  2361.   node to processing node, bypassing the partition and I/O management nodes.
  2362.   Multiple I/O devices (even DataVaults) can be logically striped.
  2363.   [David.Kotz@Dartmouth.edu]}
  2364. }
  2365.  
  2366. @Manual{tmc:cmio,
  2367.   key = {TMC},
  2368.   title = {Programming the {CM I/O} System},
  2369.   year = {1990},
  2370.   month = {November},
  2371.   organization = {Thinking Machines Corporation},
  2372.   keyword = {parallel I/O, file system interface, multiprocessor file system},
  2373.   comment = {There are more recent editions. They have two types of files,
  2374.   parallel and serial, differing in the way data is laid out internally. Also
  2375.   have three modes for reading the file: synchronous, streaming (asynchronous),
  2376.   and buffered. [David.Kotz@Dartmouth.edu]}
  2377. }
  2378.  
  2379. @InProceedings{towsley:cpuio,
  2380.   author = {Donald F. Towsley},
  2381.   title = {The Effects of {CPU: I/O} Overlap in Computer System
  2382.   Configurations},
  2383.   booktitle = {Proceedings of the 5th Annual International Symposium on
  2384.   Computer Architecture},
  2385.   year = {1978},
  2386.   month = {April},
  2387.   pages = {238--241},
  2388.   keyword = {parallel processing, I/O},
  2389.   comment = {Difficult to follow since it is missing its figures. ``Our most
  2390.   important result is that multiprocessor systems can benefit considerably more
  2391.   than single processor systems with the introduction of CPU: I/O overlap.''
  2392.   They overlap I/O needed by some future CPU sequence with the current CPU
  2393.   operation. They claim it looks good for large numbers of processors. Their
  2394.   orientation seems to be for multiprocessors operating on independent tasks.
  2395.   [David.Kotz@Dartmouth.edu]}
  2396. }
  2397.  
  2398. @Article{towsley:cpuio-parallel,
  2399.   author = {D. Towsley and K. M. Chandy and J. C. Browne},
  2400.   title = {Models for Parallel Processing within Programs: {Application} to
  2401.   {CPU: I/O} and {I/O: I/O} Overlap},
  2402.   journal = {Communications of the ACM},
  2403.   year = {1978},
  2404.   month = {October},
  2405.   volume = {21},
  2406.   number = {10},
  2407.   pages = {821--831},
  2408.   keyword = {parallel processing, I/O},
  2409.   comment = {Models CPU:I/O and I/O:I/O overlap within a program. ``Overlapping
  2410.   is helpful only when it allows a device to be utilized which would not be
  2411.   utilized without overlapping.'' In general the overlapping seems to help.
  2412.   [David.Kotz@Dartmouth.edu]}
  2413. }
  2414.  
  2415. @MastersThesis{vaitzblit:media,
  2416.   author = {Lev Vaitzblit},
  2417.   title = {The Design and Implementation of a High-Bandwidth File Service for
  2418.   Continuous Media},
  2419.   year = {1991},
  2420.   month = {September},
  2421.   school = {MIT},
  2422.   keyword = {multimedia, distributed file system, disk striping},
  2423.   comment = {A DFS for multimedia. Expect large files, read-mostly, highly
  2424.   sequential. Temporal synchronization is key. An administration server handles
  2425.   opens and closes, and provides guarantees on performance (like Swift). The
  2426.   interface at the client nodes talks to the admin server transparently, and
  2427.   stripes requests over all storage nodes. Storage nodes may internally use
  2428.   RAIDs, I suppose. Files are a series of frames, rather than bytes. Each frame
  2429.   has a time offset in seconds. Seeks can be by frame number or time offset.
  2430.   File containers contain several files, and have attributes that specify
  2431.   performance requirements. Interface does prefetching, based on read direction
  2432.   (forward or backward) and any frame skips. But frames are not transmitted
  2433.   from storage server to client node until requested (client pacing). Claim
  2434.   that synchronous disk interleaving with a striping unit of one frame is best.
  2435.   Could get 30 frames/sec (3.5MB/s) with 2 DECstation 5000s and 4 disks,
  2436.   serving a client DEC 5000. [David.Kotz@Dartmouth.edu]}
  2437. }
  2438.  
  2439. @InProceedings{vandegoor:unixio,
  2440.   author = {A. J. {van de Goor} and A. Moolenaar},
  2441.   title = {{UNIX I/O} in a Multiprocessor System},
  2442.   booktitle = {Proceedings of the 1988 Winter Usenix Conference},
  2443.   year = {1988},
  2444.   pages = {251--258},
  2445.   keyword = {unix, multiprocessor file system}
  2446. }
  2447.  
  2448. @Manual{vms:stripe,
  2449.   key = {DEC},
  2450.   title = {{VAX} Disk Striping Driver for {VMS}},
  2451.   year = {1989},
  2452.   month = {December},
  2453.   organization = {Digital Equipment Corporation},
  2454.   note = {Order Number AA-NY13A-TE},
  2455.   keyword = {disk striping},
  2456.   comment = {Describes the VAX disk striping driver. Stripes an apparently
  2457.   arbitrary number of disk devices. All devices must be the same type, and
  2458.   apparently completely used. Manager can specify ``chunksize'', the number of
  2459.   logical blocks per striped block. They suggest using the track size of the
  2460.   device as the chunk size. They also point out that multiple controllers
  2461.   should be used in order to gain parallelism. [David.Kotz@Dartmouth.edu]}
  2462. }
  2463.  
  2464. @InProceedings{wilcke:victor,
  2465.   author = {W. W. Wilcke and D. G. Shea and R. C. Booth and D. H. Brown and M.
  2466.   F. Giampapa and L. Huisman and G. R. Irwin and E. Ma and T. T. Murakami and
  2467.   F. T. Tong and P. R. Varker and D. J. Zukowski},
  2468.   title = {The {IBM Victor} Multiprocessor Project},
  2469.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  2470.   Applications},
  2471.   year = {1989},
  2472.   pages = {201--207},
  2473.   keyword = {parallel architecture, MIMD, message passing},
  2474.   comment = {Interesting architecture. Transputers arranged in a 2-D mesh with
  2475.   one disk for each column, and one graphics host for each quadrant. Each disk
  2476.   has its own controller (PID). This paper says little about I/O, and
  2477.   application examples include no I/O. Message-passing paradigm, although
  2478.   messages must pass through the CPUs along the route. [David.Kotz@Dartmouth.edu]}
  2479. }
  2480.  
  2481. @TechReport{wilkes:datamesh,
  2482.   author = {John Wilkes},
  2483.   title = {{DataMesh} --- scope and objectives: a commentary},
  2484.   year = {1989},
  2485.   month = {July},
  2486.   number = {HP-DSD-89-44},
  2487.   institution = {Hewlett-Packard},
  2488.   keyword = {parallel I/O, distributed systems, disk caching},
  2489.   comment = {Proposal for a project at HP, that hooks a heterogeneous set of
  2490.   storage devices together over a fast interconnect, each with its own
  2491.   identical processor. The whole would then act as a file server for a network.
  2492.   Data storage devices would range from fast to slow (e.g. optical jukebox),
  2493.   varying availability, {\em etc.}. See wilkes:datamesh1 for more recent status.
  2494.   [David.Kotz@Dartmouth.edu]}
  2495. }
  2496.  
  2497. @InProceedings{wilkes:datamesh1,
  2498.   author = {John Wilkes},
  2499.   title = {{DataMesh} Research Project, Phase 1},
  2500.   booktitle = {Proceedings of the Usenix File Systems Workshop},
  2501.   year = {1992},
  2502.   month = {May},
  2503.   pages = {63--69},
  2504.   keyword = {distributed file system, parallel I/O, disk scheduling, disk
  2505.   layout},
  2506.   comment = {Write to wilkes@hplabs.hp.com for more info.
  2507.   [David.Kotz@Dartmouth.edu]}
  2508. }
  2509.  
  2510. @InProceedings{willeman:pario,
  2511.   author = {Ray Willeman and Susan Phillips and Ron Fargason},
  2512.   title = {An Integrated Library For Parallel Processing: The Input/Output
  2513.   Component},
  2514.   booktitle = {Fourth Conference on Hypercube Concurrent Computers and
  2515.   Applications},
  2516.   year = {1989},
  2517.   pages = {573--575},
  2518.   keyword = {parallel I/O},
  2519.   comment = {Like the CUBIX interface, in some ways. Meant for parallel access
  2520.   to non-striped (sequential) file. Self-describing format so that the reader
  2521.   can read the formatting information and distribute data accordingly.
  2522.   [David.Kotz@Dartmouth.edu]}
  2523. }
  2524.  
  2525. @InProceedings{witkowski:hyper-fs,
  2526.   author = {Andrew Witkowski and Kumar Chandrakumar and Greg Macchio},
  2527.   title = {Concurrent {I/O} System for the {Hypercube} Multiprocessor},
  2528.   booktitle = {Third Conference on Hypercube Concurrent Computers and
  2529.   Applications},
  2530.   year = {1988},
  2531.   pages = {1398--1407},
  2532.   keyword = {parallel I/O, hypercube, parallel file system},
  2533.   comment = {Concrete system for the Hypercube. Files resident on one disk
  2534.   only. Little support for cooperation except for sequentialized access to
  2535.   parts of the file, or broadcast. No mention of random-access files. I/O nodes
  2536.   are distinguished from computation nodes. I/O nodes have separate comm.
  2537.   network. How would prefetching fit in? No parallel access. I/O hooked to
  2538.   front-end too. [David.Kotz@Dartmouth.edu]}
  2539. }
  2540. -- 
  2541. -----------------
  2542. Mathematics and Computer Science
  2543. Dartmouth College, 6188 Bradley Hall, Hanover NH 03755-3551
  2544. email: David.Kotz@Dartmouth.edu    or   dfk@cs.dartmouth.edu
  2545.  
  2546.  
  2547.