[petsc-users] MatMult() returning different values depending on # of processors?
Barry Smith
bsmith at mcs.anl.gov
Wed Jun 25 18:24:05 CDT 2014
Can you send the code that reproduces this behavior?
Barry
On Jun 25, 2014, at 4:37 PM, Arthur Kurlej <akurlej at gmail.com> wrote:
> Hi Barry,
>
> So for the matrix C that I am currently testing (size 162x162), the condition number is roughly 10^4.
>
> For reference, I'm porting MATLAB code into PETSc, and for one processor, the PETSc b vector is roughly equivalent to the MATLAB b vector. So I know that for one processor, my program is performing as expected.
>
> I've included examples below of values for b (also of size 162), ranging from indices 131 to 141.
>
> #processors=1:
> 0
> 1.315217173959314e-20
> 1.315217173959314e-20
> 4.843201487740107e-17
> 4.843201487740107e-17
> 8.166104700666665e-14
> 8.166104700666665e-14
> 6.303834267553249e-11
> 6.303834267553249e-11
> 2.227932688485483e-08
> 2.227932688485483e-08
>
> # processors=2:
> 5.480410831461926e-22
> 2.892553944350444e-22
> 2.892553944350444e-22
> 7.524038923310717e-24
> 7.524038923214420e-24
> -3.340766769043093e-26
> -7.558372155761972e-27
> 5.551561288838557e-25
> 5.550551546879874e-25
> -1.579397982093437e-22
> 2.655766754178065e-22
>
> # processors = 4:
> 5.480410831461926e-22
> 2.892553944351728e-22
> 2.892553944351728e-22
> 7.524092205125593e-24
> 7.524092205125593e-24
> -2.584939414228212e-26
> -2.584939414228212e-26
> 0
> 0
> -1.245940797657998e-23
> -1.245940797657998e-23
>
> # processors = 8:
> 5.480410831461926e-22
> 2.892553944023035e-22
> 2.892553944023035e-22
> 7.524065744581494e-24
> 7.524065744581494e-24
> -2.250265175188197e-26
> -2.250265175188197e-26
> -6.543127892265160e-26
> 1.544288143499193e-317
> 8.788794008375919e-25
> 8.788794008375919e-25
>
>
> Thanks,
> Arthur
>
>
>
> On Wed, Jun 25, 2014 at 4:06 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> How different are the values in b? Can you send back a few examples of the different b’s? Any idea of the condition number of C?
>
> Barry
>
> On Jun 25, 2014, at 3:10 PM, Arthur Kurlej <akurlej at gmail.com> wrote:
>
> > Hi all,
> >
> > While running my code, I have found that MatMult() returns different values depending on the number of processors I use (and there is quite the variance in the values).
> >
> > The setup of my code is as follows (I can go into more depth/background if needed):
> > -Generate parallel AIJ matrix of size NxN, denoted as A
> > -Retrieve parallel AIJ submatrix from the last N-1 rows&columns from A, denoted as C
> > -Generate vector of length N-1, denoted as x
> > -Find C*x=b
> >
> > I have already checked that A, C, and x are all equivalent when ran for any number of processors, it is only the values of vector b that varies.
> >
> > Does anyone have an idea about what's going on?
> >
> >
> > Thanks,
> > Arthur
> >
>
>
More information about the petsc-users
mailing list