On Tue, Mar 30, 2010 at 11:51:39PM +0100, Ricardo Reis wrote:
>
> If using the master/slace IO model, would it be better to cicle
> through all the process and each one would write it's part of the
> array into the file. This file would be open in "stream" mode...
>
> like
>
> do p=0,nprocs-1
>
> if(my_rank.eq.i)then
>
> openfile (append mode)
> write_to_file
> closefile
>
> endif
>
> call MPI_Barrier(world,ierr)
>
> enddo
Note that there's no guarantee of the order here, though. Nothing
prevents rank 30 from hitting that loop before rank 2 does. To ensure
order, you could MPI_SEND a token around a ring of MPI processes.
Yuck.
One approach might be to use MPI_SCAN to collect offsets (the amount
of data each process will write) and then do an MPI_FILE_WRITE_AT_ALL.
If you are stuck with NFS, then yes, send to master.
==rob
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
|