MPI question
Julian
julvar at tamu.edu
Wed Oct 18 10:53:02 CDT 2006
Thanks Berend and Matt,
I'm gonna take a look at that book... Luckily, they have an e-book version
through our library!
Julian.
> -----Original Message-----
> From: owner-petsc-users at mcs.anl.gov
> [mailto:owner-petsc-users at mcs.anl.gov] On Behalf Of Berend van Wachem
> Sent: Monday, October 16, 2006 1:35 AM
> To: petsc-users at mcs.anl.gov
> Subject: Re: MPI question
>
> Hi Julian,
>
> I am not affiliated to the petsc-team, but have been using
> petsc a number of years.
> The idea of MPI is that your whole program get executed on
> each processor. So getting output twice on each processor is
> quite normal. So not only PETSC functions are called by each
> processor, every command you write will be called by each
> processor. Because variables have different values upon each
> processor, you can imply slightly different behaviour, or
> have each processor work on an own data set.
>
> If you want output, I recommend you to use the PETSC
> functions for IO:
> PetscPrintf, or PetscSynchronizedPrintf.
>
> I found it helpful to read an introduction to MPI, "Using
> MPI" by Gropp, Lusk, Skjellum.
>
> Good luck,
>
> Berend.
>
> > I am using petsc in my fem program on the supercomputer we
> have here
> > at texas a&m univ. I configured petsc to build the
> libraries with mpi.
> > So, I ran 'mpirun -np 2 /home/j0v1008/bin/alphampi
> a.alpha' in order
> > to use
> > 2 processors.
> > Till the point where petsc is initialized, everything looks normal.
> > From the point petsc in initialized, I get duplicates of everything
> > that is written to cout (at the very least, maybe it's doing
> > duplicates of other things as well).
> > I understand that all the petsc functions might be called
> twice or so
> > depending on how it parallelizes, but I don't understand why it
> > executes lines that are outside of the petsc world, that
> have nothing to do with mpi.
> >
> > Maybe this would clear things up:
> >
> > void main()
> > {
> > Cout << "line1"
> > //insert code to initialize mpi
> > Cout << "line2"
> > MyfunctionusingMPI()
> > Cout << "line3"
> > //insert code to finalizeMPI
> > }
> >
> > Say I run this program with 2 processors, will "line2" be printed
> > twice ? If yes, can you explain why it does that when I
> didn't ask for
> > that line to be parallelized?
> > If no, then why is my fea program behaving so?
> >
> > Thanks,
> > Julian.
> >
>
More information about the petsc-users
mailing list