Alexander : > >> MatCreateMPIAIJ(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, N, M, 12, >> PETSC_NULL, 12, PETSC_NULL, &AT); >> MatTranspose(A,MAT_IGNORE_MATRIX,&AT); >> > > should be replaced with > MatTranspose(A,MAT_INITIAL_MATRIX,&AT); > > Hm, it seems this was the reason... >
With this change, do you still get different matrix product comparing with Matlab's? I'll add an error flag in petsc to prevent using MatTranspose(A,MAT_IGNORE_MATRIX,&AT). > > Do you mean 'Cm = A'*B;'? > 'Cm = A.'*B;' gives component-wise matrix product, not matrix product. > > > .' operator means non-Hermitian transpose. That is what I get with > MatTranspose (in contrast with MatHermitianTranspose) > component-wise matrix product would be .* > You are correct. Hong > > > > Hong > > > >> C = PetscBinaryRead('C.dat','complex',true); >> >> Matrix C is different depending on number of cores I use. >> My PETSc is: >> Using Petsc Development HG revision: >> 876c894d95f4fa6561d0a91310ca914592527960 HG Date: Tue Jan 10 19:27:14 2012 >> +0100 >> >> >> On 06.02.2012 17:13, Hong Zhang wrote: >> >> MatMatMult() in petsc is not well-tested for complex - could be buggy. >> Can you send us the matrices A and B in petsc binary format for >> investigation? >> >> Hong >> >> On Mon, Feb 6, 2012 at 5:55 AM, Alexander Grayver < >> agrayver at gfz-potsdam.de> wrote: >> >>> Dear PETSc team, >>> >>> I try to use: >>> call >>> MatMatMult(A,B,MAT_INITIAL_MATRIX,PETSC_DEFAULT_DOUBLE_PRECISION,C,ierr);CHKERRQ(ierr) >>> >>> Where both A and B are rectangular, but A is sparse and B is dense. Both >>> are double complex and distributed. >>> The product PETSc gives me contains some errors in some part of the >>> matrix. >>> I output A, B and C then computed product in matlab. >>> >>> Attached you see figure plotted as: >>> imagesc(log10(abs(C-Cm))) >>> >>> Where Cm -- product computed in matlab. >>> >>> The pattern and amplitude vary depending on the number of cores I use. >>> This picture is obtained for 48 cores (I've tried 12, 64 cores as well). >>> >>> Where should I look for possible explanation? >>> >>> -- >>> Regards, >>> Alexander >>> >> >> >> >> -- >> Regards, >> Alexander >> >> > > > -- > Regards, > Alexander > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120207/be33bf95/attachment.html>