[petsc-users] MUMPS error -13 info

Hong Zhang hzhang at mcs.anl.gov
Sun Apr 13 12:16:42 CDT 2014


Thanks for reporting it. Do you agree with the fix below? If so, I'll
patch petsc-release.
Hong

$ git diff ../../../../mat/impls/aij/mpi/mumps/mumps.c
diff --git a/src/mat/impls/aij/mpi/mumps/mumps.c
b/src/mat/impls/aij/mpi/mumps/mumps.c
index f07788a..e4b2e44 100644
--- a/src/mat/impls/aij/mpi/mumps/mumps.c
+++ b/src/mat/impls/aij/mpi/mumps/mumps.c
@@ -729,8 +729,13 @@ PetscErrorCode MatFactorNumeric_MUMPS(Mat F,Mat
A,const MatFactorInfo *info)
   }
   PetscMUMPS_c(&mumps->id);
   if (mumps->id.INFOG(1) < 0) {
-    if (mumps->id.INFO(1) == -13)
SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by MUMPS in
numerical factorization phase: Cannot allocate required memory %d
megabytes\n",mumps->id.INFO(2));
-    else SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by
MUMPS in numerical factorization phase: INFO(1)=%d,
INFO(2)=%d\n",mumps->id.INFO(1),mumps->id.INFO(2));
+    if (mumps->id.INFO(1) == -13) {
+      if (mumps->id.INFO(2) < 0) {
+        SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by
MUMPS in numerical factorization phase: Cannot allocate required
memory %d bytes\n",-mumps->id.INFO(2)*1.e6);
+      } else {
+        SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by
MUMPS in numerical factorization phase: Cannot allocate required
memory %d bytes\n",mumps->id.INFO(2));
+      }
+    } else SETERRQ2(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by
MUMPS in numerical factorization phase: INFO(1)=%d,
INFO(2)=%d\n",mumps->id.INFO(1),mumps->id.INFO(2));
   }

On Sun, Apr 13, 2014 at 2:42 AM, Gong Ding <gdiso at ustc.edu> wrote:
> Dear Sir,
> I see an error:
>
> Transient compute from 0 ps step 0.2 ps to 3000 ps
> t = 0.2 ps, dt = 0.2 ps
> --------------------------------------------------------------------------------
>   process particle generation....................ok
>   Gummel electron equation CONVERGED_ATOL, residual 5.41824e-12, its 4
>   Gummel hole equation CONVERGED_ATOL, residual 4.6721e-13, its 4
> --------------------- Error Message ------------------------------------
> Fatal Error:Error reported by MUMPS in numerical factorization phase: Cannot allocate required memory 990883164 megabytes
>  at line 721 in /tmp/build/rhel6-64/build.petsc.3.4.4.859b2b9/src/src/mat/impls/aij/mpi/mumps/mumps.c
> ------------------------------------------------------------------------
> which reported that MUMPS requires 990883164 megabytes of memory.
> The memory requirement is too huge so I takes a look at the reason.
>
> The code in petsc is listed below:
>
> if (mumps->id.INFOG(1) < 0) {
>  if (mumps->id.INFO(1) == -13)
> SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error reported by MUMPS in numerical factorization phase: Cannot allocate required memory %d megabytes\n",mumps->id.INFO(2));
> }
>
> However, the mumps user's guide said
>
> -13 An error occurred in a Fortran ALLOCATE statement. The size that the package requested is
> available in INFO(2). If INFO(2) is negative, then the size that the package requested is obtained
> by multiplying the absolute value of INFO(2) by 1 million.
>
> It is clear that 990883164 megabytes should be 990883164 bytes here. Hope this bug can be fixed.
>
> Regards,
> Gong Ding
>
>
>
>


More information about the petsc-users mailing list