Two questions about PC Object
Hello! I am working with a user of XSEDE (forerly know as TeraGrid) on converting his code from Scalapack to using PETSc. His physical problem yields matrices which are sparse, but the structure is rather general. We have a version going that works very well for one type of problems. I can use MUMPS or SuperLU and I get results which are pretty close to what he gets when using Scalapack. However, I am running into problems with the matrices that correspond to a different problem type. I get results when using MUMPS, but they differ widely from the Scalapack results. With MUMPS I get an error like: Error reported by MUMPS in numerical factorization phase: INFO(1)=-1, INFO(2)=359 I noticed that for the matrix types where I get good results, the nonzeros reported for the PC Object type exactly the number of entries in my input data for the matrix (MPIAIJ format). For the type that does not work, petsc reports more nonzeros than what I enter. The message looks like this: linear system matrix = precond matrix: Matrix Object: type=mpiaij, rows=123120, cols=123120 total: nonzeros=59094408, allocated nonzeros=59173613 My questions are: 1) Does anybody know what the error INFO(1)=-1 means in MUMPS? 2) How does PETSc calculate the number of nonzeros for the PC matrix? Have banging my head against this problem for a while. Any advice is highly appreciated. Many thanks in advance! Gabriele Jost Texas Advanced Computing Center
On Aug 7, 2011, at 9:17 PM, Gabriele Jost wrote:
Hello!
I am working with a user of XSEDE (forerly know as TeraGrid) on converting his code from Scalapack to using PETSc. His physical problem yields matrices which are sparse, but the structure is rather general. We have a version going that works very well for one type of problems. I can use MUMPS or SuperLU and I get results which are pretty close to what he gets when using Scalapack. However, I am running into problems with the matrices that correspond to a different problem type. I get results when using MUMPS, but they differ widely from the Scalapack results. With MUMPS I get an error like:
Error reported by MUMPS in numerical factorization phase: INFO(1)=-1, INFO(2)=359
I noticed that for the matrix types where I get good results, the nonzeros reported for the PC Object type exactly the number of entries in my input data for the matrix (MPIAIJ format). For the type that does not work, petsc reports more nonzeros than what I enter. The message looks like this:
linear system matrix = precond matrix: Matrix Object: type=mpiaij, rows=123120, cols=123120 total: nonzeros=59094408, allocated nonzeros=59173613
What is the number of entries you think you put in? Is it one of the two numbers above? Have you done matrix preallocation? In the example that works do the two numbers above match, i.e. is the preallocation perfect? My first guess is simply that the matrix entries are not going in the correct places? Anyway to test with a very small matrix and -mat_view? Barry
My questions are:
1) Does anybody know what the error INFO(1)=-1 means in MUMPS? 2) How does PETSc calculate the number of nonzeros for the PC matrix?
Have banging my head against this problem for a while. Any advice is highly appreciated.
Many thanks in advance!
Gabriele Jost Texas Advanced Computing Center
On Mon, Aug 8, 2011 at 2:17 AM, Gabriele Jost <[email protected]> wrote:
Hello!
I am working with a user of XSEDE (forerly know as TeraGrid) on converting his code from Scalapack to using PETSc. His physical problem yields matrices which are sparse, but the structure is rather general. We have a version going that works very well for one type of problems. I can use MUMPS or SuperLU and I get results which are pretty close to what he gets when using Scalapack. However, I am running into problems with the matrices that correspond to a different problem type. I get results when using MUMPS, but they differ widely from the Scalapack results. With MUMPS I get an error like:
Error reported by MUMPS in numerical factorization phase: INFO(1)=-1, INFO(2)=359
I noticed that for the matrix types where I get good results, the nonzeros reported for the PC Object type exactly the number of entries in my input data for the matrix (MPIAIJ format). For the type that does not work, petsc reports more nonzeros than what I enter. The message looks like this:
linear system matrix = precond matrix: Matrix Object: type=mpiaij, rows=123120, cols=123120 total: nonzeros=59094408, allocated nonzeros=59173613
My questions are:
1) Does anybody know what the error INFO(1)=-1 means in MUMPS?
-1 means the error code is in INFO(2). I cannot find any online list of the error codes. I suggest mailing the MUMPS list. Thanks, Matt
2) How does PETSc calculate the number of nonzeros for the PC matrix?
Have banging my head against this problem for a while. Any advice is highly appreciated.
Many thanks in advance!
Gabriele Jost Texas Advanced Computing Center
-- 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
Am 8/8/11 4:26 AM, schrieb Matthew Knepley:
On Mon, Aug 8, 2011 at 2:17 AM, Gabriele Jost <[email protected] <mailto:[email protected]>> wrote: [...] Error reported by MUMPS in numerical factorization phase: INFO(1)=-1, INFO(2)=359
[...]
My questions are:
1) Does anybody know what the error INFO(1)=-1 means in MUMPS?
-1 means the error code is in INFO(2). I cannot find any online list of the error codes. I suggest mailing the MUMPS list.
This information is available in the mumps userguide (http://graal.ens-lyon.fr/MUMPS/doc/userguide_4.10.0.pdf), Chapter 6. Excerpt: --- INFO(1) is 0 if the call to MUMPS was successful, negative if an error occurred (see Section 7), or positive if a warning is returned. INFO(2) holds additional information about the error or the warning. If INFO(1) = –1, INFO(2) is the processor number (in communicator mumps par%COMM) on which the error was detected. --- So in your case there would seem to be an error on processor 359. Best, Klaus
Gabriele:
However, I am running into problems with the matrices that correspond to a different problem type. I get results when using MUMPS, but they differ widely from the Scalapack results. With MUMPS I get an error like: Error reported by MUMPS in numerical factorization phase: INFO(1)=-1, INFO(2)=359
Checking mumps manual, "INFO(1)=-1, INFO(2)=359" means an error occurred on processor 359. How many processors do you use, more than 359?
I noticed that for the matrix types where I get good results, the nonzeros reported for the PC Object type exactly the number of entries in my input data for the matrix (MPIAIJ format). For the type that does not work, petsc reports more nonzeros than what I enter. The message looks like this: linear system matrix = precond matrix: Matrix Object: type=mpiaij, rows=123120, cols=123120 total: nonzeros=59094408, allocated nonzeros=59173613 My questions are: 1) Does anybody know what the error INFO(1)=-1 means in MUMPS?
Check mumps manual ~petsc/externalpackages/MUMPS_xxx/doc/userguide_xxx.pdf
2) How does PETSc calculate the number of nonzeros for the PC matrix?
When using mumps, mumps computes the nonzeros of the PC matrix. Factored matrix is far more denser than original matrix in general. Mumps sets default fill-in ratio as 20, which may still insufficient sometimes. You may experiment with different matrix orderings -mat_mumps_icntl_7 <mat_ordering>. Are you using petsc-dev with the latest mumps 4.10? If so, you may turn on parallel symbolic factorization '-mat_mumps_icntl_28 2'. Good luck, Hong
Have banging my head against this problem for a while. Any advice is highly appreciated. Many thanks in advance! Gabriele Jost Texas Advanced Computing Center
participants (5)
-
Barry Smith -
Gabriele Jost -
Hong Zhang -
Klaus Zimmermann -
Matthew Knepley