[petsc-users] Different solution while running in parallel
Matthew Knepley
knepley at gmail.com
Thu Nov 17 09:16:01 CST 2022
Using options instead of code will make your life much easier.
Two thing are wrong here:
1) Your solver is doing no iterates because the initial residual is very
small, 5.493080158227e-15. The LU does not matter.
In order to check the condition number of your system, run with
-pc_type svd -pc_svd_monitor
2) Your parallel run also does no iterates
0 KSP none resid norm 6.951601853367e-310 true resid norm
1.058300524426e+01 ||r(i)||/||b|| 8.819171036882e-01
but the true residual is not small. That means that your system is
singular, but you have given a consistent RHS.
Thanks,
Matt
On Thu, Nov 17, 2022 at 9:37 AM Karthikeyan Chockalingam - STFC UKRI <
karthikeyan.chockalingam at stfc.ac.uk> wrote:
> Hi Matt and Hong,
>
>
>
> Thank you for your response.
>
> I made the following changes, to get the desired output
>
>
>
> PetscReal norm; /* norm of solution error */
>
> PetscInt its;
>
> KSPConvergedReason reason;
>
> PetscViewerAndFormat *vf;
>
> PetscViewerAndFormatCreate(PETSC_VIEWER_STDOUT_WORLD,
> PETSC_VIEWER_DEFAULT, &vf);
>
>
>
> ierr = KSPView(ksp, PETSC_VIEWER_STDOUT_SELF);CHKERRQ(ierr);
>
>
>
> KSPSolve(ksp, b, x);
>
>
>
> ierr = KSPMonitorTrueResidual(ksp,its,norm,vf);CHKERRQ(ierr);
>
> ierr = KSPMonitorSingularValue(ksp, its, norm, vf);CHKERRQ(ierr);
>
>
>
> I have attached the outputs from both the runs. As before, I am also
> printing A, b, and x.
>
>
>
> I wonder if it is a memory issue related to mpi library employed. I am
> currently using openmpi – should I instead use mpich?
>
>
>
> Kind regards,
>
> Karthik.
>
>
>
> *From: *Matthew Knepley <knepley at gmail.com>
> *Date: *Thursday, 17 November 2022 at 12:19
> *To: *Zhang, Hong <hzhang at mcs.anl.gov>
> *Cc: *petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>, Chockalingam,
> Karthikeyan (STFC,DL,HC) <karthikeyan.chockalingam at stfc.ac.uk>
> *Subject: *Re: [petsc-users] Different solution while running in parallel
>
> On Wed, Nov 16, 2022 at 9:07 PM Zhang, Hong via petsc-users <
> petsc-users at mcs.anl.gov> wrote:
>
> Karhik,
>
> Can you find out the condition number of your matrix?
>
>
>
> Also, run using
>
>
>
> -ksp_view -ksp_monitor_true_residual -ksp_converged_reason
>
>
>
> and send the two outputs.
>
>
>
> Thanks,
>
>
>
> Matt
>
>
>
> Hong
>
>
> ------------------------------
>
> *From:* petsc-users <petsc-users-bounces at mcs.anl.gov> on behalf of
> Karthikeyan Chockalingam - STFC UKRI via petsc-users <
> petsc-users at mcs.anl.gov>
> *Sent:* Wednesday, November 16, 2022 6:04 PM
> *To:* petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> *Subject:* [petsc-users] Different solution while running in parallel
>
>
>
> Hello,
>
>
>
> I tried to solve a (FE discretized) Poisson equation using PCLU. For
> some reason I am getting different solutions while running the problem on
> one and two cores. I have attached the output file (out.txt) from both the
> runs. I am printing A, b and x from both the runs – while A and b are the
> same but the solution seems is different.
>
>
>
> I am not sure what I doing wrong.
>
>
>
> Below is my matrix, vector, and solve setup.
>
>
>
>
>
> Mat A;
>
> Vec b, x;
>
>
>
> ierr = MatCreate(PETSC_COMM_WORLD, &A); CHKERRQ(ierr);
>
> ierr = MatSetType(A, MATMPIAIJ); CHKERRQ(ierr);
>
> ierr = MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, N, N); CHKERRQ
> (ierr);
>
> ierr = MatMPIAIJSetPreallocation(A,d_nz, *NULL*, o_nz, *NULL*);
> CHKERRQ(ierr);
>
> ierr = MatSetOption(A,MAT_SYMMETRIC,PETSC_TRUE); CHKERRQ(ierr);
>
> ierr = MatCreateVecs(A, &b, &x); CHKERRQ(ierr);
>
>
>
> KSP ksp;
>
> PC pc;
>
> KSPCreate(PETSC_COMM_WORLD, &ksp);
>
> KSPSetOperators(ksp, A, A);
>
> ierr = KSPSetType(ksp,KSPPREONLY);CHKERRQ(ierr);
>
> ierr = KSPGetPC(ksp,&pc);CHKERRQ(ierr);
>
> ierr = PCSetType(pc,PCLU);CHKERRQ(ierr);
>
> ierr = PCFactorSetMatSolverType(pc,MATSOLVERMUMPS);CHKERRQ(ierr);
>
> KSPSolve(ksp, b, x);
>
>
>
> Thank you for your help.
>
>
>
> Karhik.
>
>
>
> This email and any attachments are intended solely for the use of the
> named recipients. If you are not the intended recipient you must not use,
> disclose, copy or distribute this email or any of its attachments and
> should notify the sender immediately and delete this email from your
> system. UK Research and Innovation (UKRI) has taken every reasonable
> precaution to minimise risk of this email or any attachments containing
> viruses or malware but the recipient should carry out its own virus and
> malware checks before opening the attachments. UKRI does not accept any
> liability for any losses or damages which the recipient may sustain due to
> presence of any viruses.
>
>
>
>
> --
>
> 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
>
>
>
> https://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>
>
--
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
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221117/1016c7ce/attachment.html>
More information about the petsc-users
mailing list