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 >

Reply via email to