Parallel File I/O

Arno Candel candel at itp.phys.ethz.ch
Wed Aug 28 15:14:32 UTC 2002


Hi,

Is there a clever way to handle large distributed Array I/O to disk? I 
don't want all contexts to block each other while reading/writing.


A straight-forward reader implementation like



Array<3, double, MultiPatch<GridTag,Remote<Brick> >  A;
A.initialize(Domain, Partition, DistributedTag());

for i=A.domain()[0].first() to A.domain()[0].last()
 for j=A.domain()[1].first() to A.domain()[1].last()
  for k=A.domain()[2].first() to A.domain()[2].last()
    {
      my_ifstream >> value;
      A(i,j,k) = value;
    }




scales miserably when reading a small 18 MB input ASCII file due to 
blocking and communication:


1 node: 15.5176 s
2 nodes: 84.5347 s
4 nodes: 212.838 s
6 nodes: 798.704 s
12 nodes: 1538.78 s


I would appreciate any suggestions for using exisiting (binary) parallel 
I/O tools provided by Pooma r2.4.0

"IO/FileSetReader.h" and "IO/FileSetWriter.h" seem to have problems with 
the latest release.


Thanks,
Arno Candel




More information about the pooma-dev mailing list