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

Reply via email to