@Article{shieh:dsm-pario, author = {Ce-Kuen Shieh and Su-Cheong Mac and Jyh-Chang Ueng}, title = {Improving the performance of distributed shared memory systems via parallel file input/output}, journal = {Journal of systems and software}, year = {1998}, month = {December}, volume = {44}, number = {1}, pages = {3--15}, URL = {http://dx.doi.org/10.1016/S0164-1212(98)10039-0}, keywords = {distributed shared memory, parallel I/O, file I/O, file system, virtual memory, pario-bib}, comment = {A parallel-I/O scheme for a system using DSM, which has one disk per node. The file is initiaally placed on node 0 , Application runs once, system then collects informaton about access pattern. The file is redistributed across all disks. Application must do all file accesses from node 0, but in subsequent runs this causes the block to be read from its disk into the local memory of the attached node, and VM-mapped into the correct place. Later page faults will move the data to the node needing the data first (if the redistribution is done well, that's the same node, so no movement is needed). At the end of the program, output data are written to the output file, on the local disk. Thus: input files go to node 0 on the first run, then are redistributed before second run, and output files are created across all nodes but are written only at file close and only to the closest disk. Limitations: files must be wholly read during application initialization, from node 0. Files must be wholly written out during the application completion. Files are immutable. You must have one slow run initially. Input files must fit on one disk. I read sections 1-2, then skimmed the rest.} }