Hong may give a better answer, but if you look at PCSetUp_LU() 
https://petsc.org/main/src/ksp/pc/impls/factor/lu/lu.c.html#PCSetUp_LU you will 
see that MatLUFactorSymbolic() is called unconditionally during the first 
PCSetUp(). Currently there is no way to check if the user has already called 
MatLUFactorSymbolic().

Jose


> El 16 ene 2022, a las 10:40, Varun Hiremath <[email protected]> 
> escribió:
> 
> Hi Hong,
> 
> Thank you, this is very helpful! 
> 
> Using this method I am able to get the memory estimates before the actual 
> solve, however, I think my code may be causing the symbolic factorization to 
> be run twice. Attached is my code where I am using SLEPc to compute 
> eigenvalues, and I use MUMPS for factorization. I have commented above the 
> code that computes the memory estimates, could you please check and tell me 
> if this would cause the symbolic factor to be computed twice (a second time 
> inside EPSSolve?), as I am seeing a slight increase in the overall 
> computation time?
> 
> Regards,
> Varun
> 
> On Wed, Jan 12, 2022 at 7:58 AM Zhang, Hong <[email protected]> wrote:
> PCFactorSetMatSolverType(pc,MATSOLVERMUMPS);
>   PCFactorSetUpMatSolverType(pc); 
>   PCFactorGetMatrix(pc,&F);
> 
>   MatLUFactorSymbolic(F,A,...)
>   You must provide row and column permutations etc,    
> petsc/src/mat/tests/ex125.c may give you a clue on how to get these inputs.
> 
> Hong
> 
> 
> From: petsc-users <[email protected]> on behalf of Junchao 
> Zhang <[email protected]>
> Sent: Wednesday, January 12, 2022 9:03 AM
> To: Varun Hiremath <[email protected]>
> Cc: Peder Jørgensgaard Olesen via petsc-users <[email protected]>
> Subject: Re: [petsc-users] PETSc MUMPS interface
>  
> Calling PCSetUp() before KSPSetUp()?
> 
> --Junchao Zhang
> 
> 
> On Wed, Jan 12, 2022 at 3:00 AM Varun Hiremath <[email protected]> 
> wrote:
> Hi All,
> 
> I want to collect MUMPS memory estimates based on the initial symbolic 
> factorization analysis before the actual numerical factorization starts to 
> check if the estimated memory requirements fit the available memory.
> 
> I am following the steps from 
> https://petsc.org/main/src/ksp/ksp/tutorials/ex52.c.html
> 
>   PCFactorSetMatSolverType(pc,MATSOLVERMUMPS);
>   PCFactorSetUpMatSolverType(pc); 
>   PCFactorGetMatrix(pc,&F);
> 
>   KSPSetUp(ksp);
>   MatMumpsGetInfog(F,...)
> 
> But it appears KSPSetUp calls both symbolic and numerical factorization. So 
> is there some other way to get these statistics before the actual 
> factorization starts?
> 
> Thanks,
> Varun
> <slepc_eps_mumps_test.cpp>

Reply via email to