[petsc-users] Fwd: Building the same petsc matrix with different numprocs gives different results!

Matthew Knepley knepley at gmail.com
Tue Sep 24 10:11:21 CDT 2013


On Tue, Sep 24, 2013 at 8:08 AM, Analabha Roy <hariseldon99 at gmail.com>wrote:

>
> On Tue, Sep 24, 2013 at 1:42 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>
>> Analabha Roy <hariseldon99 at gmail.com> writes:
>>
>> > Hi all,
>> >
>> >
>> > Compiling and running this
>> > code<
>> https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c
>> >that
>> > builds a petsc matrix gives different results when run with different
>> > number of processors.
>>
>>
> Thanks for the reply.
>
>
>>  Uh, if you call rand() on different processors, why would you expect it
>> to give the same results?
>>
>> Right, I get that. The rand() was a placeholder.
>
> This original much larger code<https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c>replicates the same loop structure and runs the same Petsc subroutines, but
> running it by
>
> mpirun -np $N ./eth -lattice_size 5 -vector_size 1 -repulsion 0.0
> -draw_out -draw_pause -1
>
> with N=1,2,3,4 gives different results for the matrix dumped out by lines
> 514-519<https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c#514>.
> The matrix itself is evaluated in parallel, created in lines 263-275
> <https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c#263>and
> evaluated in lines 294-356<https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c#294>
>
> (you can click on the line numbers above to navigate directly to them)
>
> Here is a sample <http://i43.tinypic.com/zyhf2f.jpg> of the output of
> lines 514-519<https://code.google.com/p/daneelrepo/source/browse/eth_question/eth.c#514>  for N=1,2,3,4 procs left to right.
>
> Thty're different for different procs. They should be the same, since none
> of my input parameters are numprocs dependent, and I don't explicitly use
> the size or rank anywhere in the code.
>

You are likely not dividing the rows you loop over so you are redundantly
computing.

   Matt


>
>
>> for (sitestride1 = Istart; sitestride1 < Iend; sitestride1++)
>>     {
>>       for (sitestride2 = 0; sitestride2 < matsize; sitestride2++)
>>         {
>>           for (alpha = 0; alpha < dim; alpha++)
>>             {
>>               for (mu = 0; mu < dim; mu++)
>>                 for (lambda = 0; lambda < dim; lambda++)
>>                   {
>>                     vecval = rand () / rand ();
>>                   }
>>
>>               VecSetValue (BDB_AA, alpha, vecval, INSERT_VALUES);
>>
>>             }
>>           VecAssemblyBegin (BDB_AA);
>>           VecAssemblyEnd (BDB_AA);
>>           VecSum (BDB_AA, &element);
>>           colvalues[sitestride2] = element;
>>
>>         }
>>       //Insert the array of colvalues to the sitestride1^th row of H
>>       MatSetValues (AVG_BDIBJ, 1, &sitestride1, matsize, idx, colvalues,
>>                     INSERT_VALUES);
>>
>>     }
>>
>> > The code is large and complex, so I have created a smaller program
>> > with the same
>> > loop structure here. <http://pastebin.ca/2457643>
>> >
>> > Compile it and run it with "mpirun -np $N ./test -draw_pause -1" gives
>> > different results for different values of N even though it's not
>> supposed
>> > to.
>>
>> What do you expect to see?
>>
>> > Here is a sample output <http://i42.tinypic.com/2s16ccw.jpg> for
>> N=1,2,3,4
>> > from left to right.
>> >
>> > Can anyone guide me as to what I'm doing wrong? Are any of the petssc
>> > routines used not parallelizable?
>> >
>> > Thanks in advance,
>> >
>> > Regards.
>> >
>> > --
>> > ---
>> > *Analabha Roy*
>> > C.S.I.R <http://www.csir.res.in>  Senior Research
>> > Associate<http://csirhrdg.res.in/poolsra.htm>
>> > Saha Institute of Nuclear Physics <http://www.saha.ac.in>
>> > Section 1, Block AF
>> > Bidhannagar, Calcutta 700064
>> > India
>> > *Emails*: daneel at physics.utexas.edu, hariseldon99 at gmail.com
>> > *Webpage*: http://www.ph.utexas.edu/~daneel/
>>
>
>
>
> --
> ---
> *Analabha Roy*
> C.S.I.R <http://www.csir.res.in>  Senior Research Associate<http://csirhrdg.res.in/poolsra.htm>
> Saha Institute of Nuclear Physics <http://www.saha.ac.in>
> Section 1, Block AF
> Bidhannagar, Calcutta 700064
> India
> *Emails*: daneel at physics.utexas.edu, hariseldon99 at gmail.com
> *Webpage*: http://www.ph.utexas.edu/~daneel/
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130924/e9b25493/attachment.html>


More information about the petsc-users mailing list