UMFPACK V5.4.0 (May 20, 2009): ERROR: out of memory

Asked by Tom Burghardt

UMFPACK generates the out of memory error at ~4 Gb memory usage. I am using 64bit Ubuntu OS with 16 Gb memory available. I need to refine the mesh for a 3-dimensional Navier-Stokes calculation and hit this limit. Is there a solution or work-around?

Thanks
Tom

Question information

Language:
English Edit question
Status:
Answered
For:
DOLFIN Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Andre Massing (massing) said :
#1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/04/2011 06:35 PM, Tom Burghardt wrote:
> New question #170112 on DOLFIN:
> https://answers.launchpad.net/dolfin/+question/170112
>
> UMFPACK generates the out of memory error at ~4 Gb memory usage. I
> am using 64bit Ubuntu OS with 16 Gb memory available. I need to
> refine the mesh for a 3-dimensional Navier-Stokes calculation and
> hit this limit. Is there a solution or work-around?

A quick and memory-friendly remedy would be to use an iterative
solver. See for instance in the demo folder of your DOLFIN installation,
grepping for "iterative" gave me:
./pde/navier-stokes/python/demo_navier-stokes.py:110: solve(A2,
p1.vector(), b2, "gmres", "amg_hypre")
./pde/stokes-iterative/python/demo_stokes-iterative.py:80:# Create
Krylov solver and AMG preconditioner
./pde/stokes-iterative/python/demo_stokes-iterative.py:81:solver =
KrylovSolver("tfqmr", "amg_ml")

HTH,

Andre

>
> Thanks Tom
>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOY7RCAAoJEA79ggnbq9dmV+IIAINFwI8772SIV8Pogx4ZRvN6
0qNo0qi4CB2RWxxdmT2Y7Cgix5sqXCb/2pA3SMW3Xq+9QwC2Nl7uxNpnv8+3iieF
6W0+tC2pJQyyh+SDXMtu+siLUnyxZw19FsRUolqseZ2I7bbAe/MnZmH/feSB8gI3
o28A7nMZD/NYXcn0jOlOCRjvTxCMg7imN0+5sY57QX/WgNpXjb3Ok7B7tp0VXWwO
6zL9Cj+WTsu85AAdiqJe9QxHUoabekXCgKOb6+vU/rF1EWjSbQB7sDuGZfpbAWZh
8dH3Hs5juoDveA+RIpAJZWWNk4qNdFExPtPGwiu+9zIq3MCcpKz0MFne20FIaqQ=
=K6FX
-----END PGP SIGNATURE-----

Revision history for this message
Tim Berger (tim-berger) said :
#2

I could discover the same problem. I have also 16 GB RAM in my computer and seems to me that this UMFPACk can only use 4GB of it. There is always more than 8 GB free when I get such a message:

UMFPACK V5.4.0 (May 20, 2009): ERROR: out of memory

[0]PETSC ERROR: --------------------- Error Message ------------------------------------
[0]PETSC ERROR: Error in external library!
[0]PETSC ERROR: umfpack_UMF_numeric failed!
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 5, Mon Sep 27 11:51:54 CDT 2010
[0]PETSC ERROR: See docs/changes/index.html for recent updates.
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[0]PETSC ERROR: See docs/index.html for manual pages.
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Unknown Name on a linux-gnu named 3c by tim Sun Mar 4 23:14:38 2012
[0]PETSC ERROR: Libraries linked from /build/buildd/petsc-3.1.dfsg/linux-gnu-c-opt/lib
[0]PETSC ERROR: Configure run at Sun Sep 11 11:58:07 2011
[0]PETSC ERROR: Configure options --with-shared --with-debugging=0 --useThreads 0 --with-clanguage=C++ --with-c-support --with-fortran-interfaces=1 --with-mpi-dir=/usr/lib/openmpi --with-mpi-shared=1 --with-blas-lib=-lblas --with-lapack-lib=-llapack --with-blacs=1 --with-blacs-include=/usr/include --with-blacs-lib="[/usr/lib/libblacsCinit-openmpi.so,/usr/lib/libblacs-openmpi.so]" --with-scalapack=1 --with-scalapack-include=/usr/include --with-scalapack-lib=/usr/lib/libscalapack-openmpi.so --with-mumps=1 --with-mumps-include=/usr/include --with-mumps-lib="[/usr/lib/libdmumps.so,/usr/lib/libzmumps.so,/usr/lib/libsmumps.so,/usr/lib/libcmumps.so,/usr/lib/libmumps_common.so,/usr/lib/libpord.so]" --with-umfpack=1 --with-umfpack-include=/usr/include/suitesparse --with-umfpack-lib="[/usr/lib/libumfpack.so,/usr/lib/libamd.so]" --with-spooles=1 --with-spooles-include=/usr/include/spooles --with-spooles-lib=/usr/lib/libspooles.so --with-hypre=1 --with-hypre-dir=/usr --with-scotch=1 --with-scotch-include=/usr/include/scotch --with-scotch-lib=/usr/lib/libscotch.so --with-hdf5=1 --with-hdf5-dir=/usr
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: MatLUFactorNumeric_UMFPACK() line 196 in src/mat/impls/aij/seq/umfpack/umfpack.c
[0]PETSC ERROR: MatLUFactorNumeric() line 2587 in src/mat/interface/matrix.c
[0]PETSC ERROR: PCSetUp_LU() line 158 in src/ksp/pc/impls/factor/lu/lu.c
[0]PETSC ERROR: PCSetUp() line 795 in src/ksp/pc/interface/precon.c
[0]PETSC ERROR: KSPSetUp() line 237 in src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: KSPSolve() line 353 in src/ksp/ksp/interface/itfunc.c

Using a better solver maybe the way to go but the question remains open: Why can't this part of FEniCS not use the available RAM? (and Is it possbile to change that somehow?)

When I start my FEniCS/DOLFIN programm approximately 1-2 GB of RAM are usually in already in use by different software. The message occurs when 4 more GB (5-6GB all in all) are in use by FEniCS.
My OS is Ubuntu 11.10 64bit.

Revision history for this message
Garth Wells (garth-wells) said :
#3

I don't expect that there will be much appetite to get into the inner workings of UMFPACK memory and pointer types, so I would suggest that you use MUMPS via PETSc rather than UMFPACK. It does not have the 4GB limitation.

Revision history for this message
Tim Berger (tim-berger) said :
#4

Thank you Garth Wells! Using MUMPS solves my problem. (Now, I use solver = NewtonSolver('mumps') instead of solver = NewtonSolver('lu').)

Can you help with this problem?

Provide an answer of your own, or ask Tom Burghardt for more information if necessary.

To post a message you must log in.