Lucas, I added MatMatSolveTranspose_MUMPS() https://gitlab.com/petsc/petsc/-/merge_requests/5500 [https://gitlab.com/uploads/-/system/project/avatar/13882401/PETSc_RBG-logo.png]<https://gitlab.com/petsc/petsc/-/merge_requests/5500> add MatMatSolveTranspose_MUMPS() (!5500) · Merge requests · PETSc / petsc · GitLab<https://gitlab.com/petsc/petsc/-/merge_requests/5500> Add MatMatSolveTranspose_MUMPS() Requested-by: Lucas Banting [email protected] gitlab.com It is in branch hzhang/add-MatMatSolveTranspose_MUMPS. You may give it a try.
MatMatSolveTranspose() is a bad name for solving A^t X = B. We should rename it as MatTransposeMatSolve(). Hong ________________________________ From: Lucas Banting <[email protected]> Sent: Thursday, August 4, 2022 7:29 PM To: Zhang, Hong <[email protected]>; Junchao Zhang <[email protected]>; Barry Smith <[email protected]> Cc: [email protected] <[email protected]> Subject: Re: [petsc-users] Question about speed of MatMatSolveTranspose with MUMPS Hi Hong, The second option, I want to solve A^T X = B. The MatMatSolveTranspose() function in petsc. Lucas ________________________________ From: petsc-users <[email protected]> on behalf of Zhang, Hong via petsc-users <[email protected]> Sent: Thursday, August 4, 2022 6:02:21 PM To: Junchao Zhang <[email protected]>; Barry Smith <[email protected]> Cc: [email protected] <[email protected]> Subject: Re: [petsc-users] Question about speed of MatMatSolveTranspose with MUMPS Caution: This message was sent from outside the University of Manitoba. Lucas, Solving A X = B^T #MatMatTransposeSolve() -- supported by petsc/mumps interface or A^T X = B #MatTransposeMatSolve() -- not supported which one do you want ? Hong ________________________________ From: petsc-users <[email protected]> on behalf of Junchao Zhang <[email protected]> Sent: Thursday, August 4, 2022 5:21 PM To: Barry Smith <[email protected]> Cc: [email protected] <[email protected]> Subject: Re: [petsc-users] Question about speed of MatMatSolveTranspose with MUMPS It seems yes, from mump manual ICNTL(9) computes the solution using A or AT Phase: accessed by the host during the solve phase. Possible values : 1 : AX = B is solved. != 1 : ATX = B is solved. On Thu, Aug 4, 2022 at 4:20 PM Barry Smith <[email protected]<mailto:[email protected]>> wrote: Yes, it appears no MUMPS matmatsolvetranspose is wired in. Does MUMPS provide such a function? If so it can be added with a few lines of code. Barry On Aug 4, 2022, at 3:55 PM, Lucas Banting <[email protected]<mailto:[email protected]>> wrote: Hello, I am using MUMPS to solve a system with multiple right hand sides. I have noticed that the MatMatSolve function appears to be quite a bit faster than the MatMatSolveTranspose function. I was trying to look through the petsc source to see where the MatMatSolveTranspose_MUMPS function was but couldn't find it. Is PETSc just doing MatSolveTranspose_MUMPS for each right hand side when doing MatMatSolveTranspose with MUMPS? If an accelerated version of MatMatSolveTranspose existed, it would be very useful for my application. Regards, Lucas
