Greetings, Chaps,
I have some questions regarding parallel IO, in the context of some basic (1d
block decomposed) arrays. Apologies in advance if I'm missing this information
in the documentation or examples:
1) Can order be enforced for writing? Writing within a forall loop, each core
writes its part of an array, apparently simultaneously, and so things are
interleaved. I tried this:
const IOHINT_PARALLEL = QIO_HINT_PARALLEL;
var MatrixOutput = open ( output_matrix_filename,
iomode.cw, IOHINT_PARALLEL );
var AdjMatChannel = MatrixOutput.writer();
forall i in AdjMatrix.dom_nnz with (ref
AdjMatrix.rowidx ) { // AdjMatrix is a record; can't "ref" a field? Guess it
doesn't really matter.
AdjMatChannel.writeln ( AdjMatrix.rowidx[i], "
", AdjMatrix.colidx[i] );
2) So far only running on-node. Any expectations/tips for multinode, in
particular useful means your found for controlling writing, reading, and
otherwise managing?
3) For multinode, is it possible to configure to write to N files, where N=one
per node, one per subset of nodes, or one global file?
a) I do intend to read the file back in and operate on it, where if the
same number of locales I expect N=one per node to work, otherwise I expect N=1
necessary. Correct?
4) At this point I’m writing text, but will switch to binary once confident
things are working. Any tips in this regard?
Suggestions, experiences, etc much appreciated.
Richard
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users