Florian: I pushed a fix in branch hzhang/fix_matview_mpisbaij (off petsc-maint) https://bitbucket.org/petsc/petsc/commits/d1654148bc9f02cde4d336bb9518a18cfb35148e
After it is tested in our regression tests, it will be merged to petsc-maint and petsc-master. Thanks for reporting it! Hong On Fri, Sep 23, 2016 at 10:37 AM, Hong <[email protected]> wrote: > Florian: > I can reproduce this error. > This is a bug in PETSc library. I'll fix it and get back to you soon. > Hong > > >> Am 22.09.2016 um 18:34 schrieb Hong: >> > Florian: >> > Would it work if replacing MATSBAIJ to MATAIJ or MATMPISBAIJ? >> >> MATAIJ works, but is not an option for my actual application. >> >> MATMPISBAIJ does not work. Not very suprisingly, since afaik setting it >> to MATSBAIJ and executing it on multiple MPI >> ranks actually results in MATMPISBAIJ. >> >> Best, >> Florian >> >> >> > >> > Hong >> > >> > Hey, >> > >> > this code reproduces the error when run with 2 or more ranks. >> > >> > #include <petscmat.h> >> > #include <petscsys.h> >> > >> > int main(int argc, char *argv[]) >> > { >> > PetscInitialize(&argc, &argv, "", NULL); >> > >> > Mat matrix; >> > MatCreate(PETSC_COMM_WORLD, &matrix); >> > MatSetType(matrix, MATSBAIJ); >> > MatSetSizes(matrix, 10, 10, PETSC_DETERMINE, PETSC_DETERMINE); >> > MatSetFromOptions(matrix); >> > MatSetUp(matrix); >> > >> > MatAssemblyBegin(matrix, MAT_FINAL_ASSEMBLY); >> > MatAssemblyEnd(matrix, MAT_FINAL_ASSEMBLY); >> > >> > PetscViewer viewer; >> > PetscViewerBinaryOpen(PETSC_COMM_WORLD, "test.mat", >> FILE_MODE_WRITE, &viewer); >> > MatView(matrix, viewer); >> > PetscViewerDestroy(&viewer); >> > MatDestroy(&matrix); >> > >> > PetscFinalize(); >> > } >> > >> > >> > The complete output is: >> > >> > >> > lindnefn@neon /data/scratch/lindnefn/aste (git)-[master] % mpic++ >> petsc.cpp -lpetsc && mpirun -n 2 ./a.out >> > >> > [0]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> > [0]PETSC ERROR: No support for this operation for this object type >> > [0]PETSC ERROR: Cannot get subcomm viewer for binary files or >> sockets unless SubViewer contains the rank 0 process >> > [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/d >> ocumentation/faq.html >> > <http://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble >> shooting. >> > [0]PETSC ERROR: Petsc Release Version 3.7.3, unknown >> > [0]PETSC ERROR: ./a.out on a arch-linux2-c-debug named neon by >> lindnefn Thu Sep 22 16:10:34 2016 >> > [0]PETSC ERROR: Configure options --with-debugging=1 >> --download-petsc4py=yes --download-mpi4py=yes >> > --download-superlu_dist --download-parmetis --download-metis >> > [0]PETSC ERROR: #1 PetscViewerGetSubViewer_Binary() line 46 in >> > /data/scratch/lindnefn/software/petsc/src/sys/classes/ >> viewer/impls/binary/binv.c >> > [0]PETSC ERROR: #2 PetscViewerGetSubViewer() line 43 in >> > /data/scratch/lindnefn/software/petsc/src/sys/classes/ >> viewer/interface/dupl.c >> > [0]PETSC ERROR: #3 MatView_MPISBAIJ_ASCIIorDraworSocket() line 900 >> in >> > /data/scratch/lindnefn/software/petsc/src/mat/impls/sbaij/ >> mpi/mpisbaij.c >> > [0]PETSC ERROR: #4 MatView_MPISBAIJ() line 926 in >> > /data/scratch/lindnefn/software/petsc/src/mat/impls/sbaij/ >> mpi/mpisbaij.c >> > [0]PETSC ERROR: #5 MatView() line 901 in >> /data/scratch/lindnefn/software/petsc/src/mat/interface/matrix.c >> > WARNING! There are options you set that were not used! >> > WARNING! could be spelling mistake, etc! >> > Option left: name:-ksp_converged_reason (no value) >> > Option left: name:-ksp_final_residual (no value) >> > Option left: name:-ksp_view (no value) >> > [neon:113111] *** Process received signal *** >> > [neon:113111] Signal: Aborted (6) >> > [neon:113111] Signal code: (-6) >> > [neon:113111] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x36cb0) >> [0x7feed8958cb0] >> > [neon:113111] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37) >> [0x7feed8958c37] >> > [neon:113111] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) >> [0x7feed895c028] >> > [neon:113111] [ 3] >> > /data/scratch/lindnefn/software/petsc/arch-linux2-c-debug/ >> lib/libpetsc.so.3.7(PetscTraceBackErrorHandler+0x563) >> > [0x7feed8d8db31] >> > [neon:113111] [ 4] /data/scratch/lindnefn/softwar >> e/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(PetscError+0x374) >> > [0x7feed8d88750] >> > [neon:113111] [ 5] /data/scratch/lindnefn/softwar >> e/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(+0x19b2f6) >> > [0x7feed8e822f6] >> > [neon:113111] [ 6] >> > /data/scratch/lindnefn/software/petsc/arch-linux2-c-debug/ >> lib/libpetsc.so.3.7(PetscViewerGetSubViewer+0x4f1) >> > [0x7feed8e803cb] >> > [neon:113111] [ 7] /data/scratch/lindnefn/softwar >> e/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(+0x860c95) >> > [0x7feed9547c95] >> > [neon:113111] [ 8] /data/scratch/lindnefn/softwar >> e/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(+0x861494) >> > [0x7feed9548494] >> > [neon:113111] [ 9] /data/scratch/lindnefn/softwar >> e/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(MatView+0x12b6) >> > [0x7feed971c08f] >> > [neon:113111] [10] ./a.out() [0x400b8b] >> > [neon:113111] [11] >> > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) >> [0x7feed8943f45] >> > [neon:113111] [12] ./a.out() [0x4009e9] >> > [neon:113111] *** End of error message *** >> > ----------------------------------------------------------- >> --------------- >> > mpirun noticed that process rank 1 with PID 113111 on node neon >> exited on signal 6 (Aborted). >> > ----------------------------------------------------------- >> --------------- >> > >> > Thanks, >> > Florian >> > >> > >> > >> > Am 22.09.2016 um 13:32 schrieb Matthew Knepley: >> > > On Thu, Sep 22, 2016 at 5:42 AM, Florian Lindner < >> [email protected] <mailto:[email protected]> >> > <mailto:[email protected] <mailto:[email protected]>>> wrote: >> > > >> > > Hello, >> > > >> > > I want to write a MATSBAIJ to a file in binary, so that I can >> load it later using MatLoad. >> > > >> > > However, I keep getting the error: >> > > >> > > [5]PETSC ERROR: No support for this operation for this object >> type! >> > > [5]PETSC ERROR: Cannot get subcomm viewer for binary files or >> sockets unless SubViewer contains the rank 0 process >> > > [6]PETSC ERROR: PetscViewerGetSubViewer_Binary() line 46 in >> > > /data/scratch/lindnefn/software/petsc/src/sys/classes/ >> viewer/impls/binary/binv.c >> > > >> > > >> > > Do not truncate the stack. >> > > >> > > Run under valgrind. >> > > >> > > Thanks, >> > > >> > > Matt >> > > >> > > >> > > The rank 0 is included, as you can see below, I use >> PETSC_COMM_WORLD and the matrix is also created like that. >> > > >> > > The code looks like: >> > > >> > > PetscErrorCode ierr = 0; >> > > PetscViewer viewer; >> > > PetscViewerBinaryOpen(PETSC_COMM_WORLD, filename.c_str(), >> FILE_MODE_WRITE, &viewer); CHKERRV(ierr); >> > > MatView(matrix, viewer); CHKERRV(ierr); >> > > PetscViewerDestroy(&viewer); >> > > >> > > Thanks, >> > > Florian >> > > >> > > >> > > >> > > >> > > -- >> > > 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 >> > >> > >> > >
