Bin : > > Thank you! From Barry's email, I have learned that PETSc aims at sparse > matrix. Therefore, I may consider using MatGetArray() for further parallel > calculations, or using Elemental/PLAPACK for dense matrix calculations. I > notice PETSc could use PLAPACK, but if I understand correctly, that has > only been implemented for LU, Cholesky decomposition, not matrix-matrix > multiplications (although it looks to be simple). >
We do have MatMatMult_MPIDense_MPIDense() in ~petsc/src/mat/impls/dense/mpi/mpidense.c. i.e., we tried to interface PLAPACK's dense matrix-matrix multiplication. However, in MatMatMultSymbolic_MPIDense_MPIDense(): SETERRQ(((PetscObject)A)->comm,PETSC_ERR_LIB,"Due to apparent bugs in PLAPACK,this is not currently supported"); Therefore, this does not work. > > As regards my question, I am sorry that I need > > C_seqdense = A_seqdense*B_seqdense^T > C_seqdense = A_seqdense^T*B_seqdense > These are purely dense computation, Elemental/PLAPACK should be used. Hong > > Gao > ------------------------------ > *From:* Hong Zhang [hzhang at mcs.anl.gov] > *Sent:* Thursday, April 05, 2012 4:30 PM > *To:* Gao Bin > *Cc:* PETSc users list > > *Subject:* Re: [petsc-users] question about MatMatMultTranspose > > Bin : > We do not have plan for supporting parallel (mpiaij format) > C = A*B^T > because sparse inner product is too expensive, and we have parallel C = > A^T*B. > > For sequential C = A*B^T, currently we only support > C_seqaij = A_seqaij*B_seqaij^T > > Do you want > C_seqdense = A_seqaij*B_seqaij^T > or > C_seqdense = A_seqaij*B_seqdense^T? > > Hong > >> >> Good to know it is simpler ;-) I am switching to the developed version >> and try it. Again, thank you very much. >> >> P.S., Moreover, I notice that some functions is not for MATMPIDENSE. May >> I ask if they are too difficult to implement (for instance, C=A*B^T and >> C=A^T*B for MATMPIDENSE)? Thank you. >> >> Cheers >> >> Gao >> ------------------------------ >> *From:* petsc-users-bounces at mcs.anl.gov [petsc-users-bounces at >> mcs.anl.gov] >> on behalf of Jed Brown [jedbrown at mcs.anl.gov] >> *Sent:* Thursday, April 05, 2012 2:32 PM >> *To:* PETSc users list; Hong Zhang >> >> *Subject:* Re: [petsc-users] question about MatMatMultTranspose >> >> On Thu, Apr 5, 2012 at 05:16, Gao Bin <bin.gao at uit.no> wrote: >> >>> Thank you for your quick reply. But as pointed out at >>> http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatMatTransposeMult.html >>> : >>> >>> This routine is currently only implemented for pairs of SeqAIJ matrices. >>> C will be of type MATSEQAIJ. >>> >>> Therefore I can not use it for dense matrix, am I right? If so, will >>> MatMatTransposeMult be extended for other types of matrix later on? Thank >>> you very much. >>> >> >> This is much simpler than the sparse case. Hong, did you intend to get >> around to this? >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120405/258f9438/attachment.htm>
