[petsc-users] Out of memory - diffusion equation eigenvalues

Smith, Barry F. bsmith at mcs.anl.gov
Mon Jul 1 22:32:12 CDT 2019


  This 18446744069467867136 suggests that you are using 32 bit indices but the factored matrix requires more than 2^31 nonzeros which cannot be represented with 32 but indices. You can try building PETSc with --with-64-bit-indices.

   You might also consider using SuperLU_DIST or MUMPS as your direct solver. They may be faster. Note SuperLUDIST works with 64 bit indices but MUMPS does not.

   Barry


> On Jul 1, 2019, at 6:19 PM, Rodrigo Piccinini via petsc-users <petsc-users at mcs.anl.gov> wrote:
> 
> Hello,
> 
> I'm trying to solve for the first ten smallest eigenvalues of a diffusion equation in a 3d heterogeneous medium (varying diffusion coefficient), but I'm getting an error message:
> 
> Traceback (most recent call last):
>   File "eigendrake_spe10_v2.py", line 121, in <module>
>     es.solve()
>   File "SLEPc/EPS.pyx", line 1132, in slepc4py.SLEPc.EPS.solve
> petsc4py.PETSc.Error: error code 55
> [0] EPSSolve() line 136 in /tmp/pip-req-build-6t_4bkg3/src/eps/interface/epssolve.c
> [0] EPSSetUp() line 269 in /tmp/pip-req-build-6t_4bkg3/src/eps/interface/epssetup.c
> [0] STSetUp() line 271 in /tmp/pip-req-build-6t_4bkg3/src/sys/classes/st/interface/stsolve.c
> [0] STSetUp_Shift() line 119 in /tmp/pip-req-build-6t_4bkg3/src/sys/classes/st/impls/shift/shift.c
> [0] KSPSetUp() line 391 in /tmp/pip-req-build-070lpqqd/src/ksp/ksp/interface/itfunc.c
> [0] PCSetUp() line 932 in /tmp/pip-req-build-070lpqqd/src/ksp/pc/interface/precon.c
> [0] PCSetUp_LU() line 99 in /tmp/pip-req-build-070lpqqd/src/ksp/pc/impls/factor/lu/lu.c
> [0] MatLUFactorSymbolic() line 3111 in /tmp/pip-req-build-070lpqqd/src/mat/interface/matrix.c
> [0] MatLUFactorSymbolic_SeqAIJ() line 366 in /tmp/pip-req-build-070lpqqd/src/mat/impls/aij/seq/aijfact.c
> [0] PetscMallocA() line 390 in /tmp/pip-req-build-070lpqqd/src/sys/memory/mal.c
> [0] MatLUFactorSymbolic_SeqAIJ() line 366 in /tmp/pip-req-build-070lpqqd/src/mat/impls/aij/seq/aijfact.c
> [0] Out of memory. Allocated: 0, Used by process: 14097043456
> [0] Memory requested 18446744069467867136
> 
> I'm using code from Firedrake Project (finite-element method) to discretize the equations.
> My code is available here: https://github.com/rbpiccinini/codes/blob/master/eigendrake/eigendrake_spe10_v2.py
> 
> The code was run with 64GB available as RAM memory. The requested memory seems to be abnormally high, though.
> I'm able to solve for the eigenvalues of a 2d smaller problem. However, if I try to solve the 3d problem, I get the out of memory error.
> 
> Could anybody help me understand the issue?
> 
> Thanks in advance.
> 
> --
> Rodrigo



More information about the petsc-users mailing list