On Mon, 5 Apr 2010, Rob Latham wrote:
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
don't they all have to hit the same Barrier? I think that will ensure
order in this business... or am I being blind to something?
I will agree, though, this is not the best solution to do it. I use this
kind of arrangment when I'm desperate to do some prinf kind of debugging
and want it ordered by process. Never had a problem with it.
I mean, I assume there is some sort of sync before the do cycle starts.
cheers!
Ricardo Reis
'Non Serviam'
PhD candidate @ Lasef
Computational Fluid Dynamics, High Performance Computing, Turbulence
http://www.lasef.ist.utl.pt
Cultural Instigator @ Rádio Zero
http://www.radiozero.pt
Keep them Flying! Ajude a/help Aero Fénix!
http://www.aeronauta.com/aero.fenix
http://www.flickr.com/photos/rreis/
< sent with alpine 2.00 >