[petsc-users] Write binary to matrix

Florian Lindner mailinglists at xgm.de
Sun Sep 25 04:07:51 CDT 2016


Great! Thanks to you!

Am 23.09.2016 um 17:56 schrieb Hong:
> 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 <hzhang at mcs.anl.gov
> <mailto:hzhang at mcs.anl.gov>> 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 at 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/documentation/faq.html
>         <http://www.mcs.anl.gov/petsc/documentation/faq.html>
>         >     <http://www.mcs.anl.gov/petsc/documentation/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/software/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(PetscError+0x374)
>         >     [0x7feed8d88750]
>         >     [neon:113111] [ 5]
>         /data/scratch/lindnefn/software/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/software/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(+0x860c95)
>         >     [0x7feed9547c95]
>         >     [neon:113111] [ 8]
>         /data/scratch/lindnefn/software/petsc/arch-linux2-c-debug/lib/libpetsc.so.3.7(+0x861494)
>         >     [0x7feed9548494]
>         >     [neon:113111] [ 9]
>         /data/scratch/lindnefn/software/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
>         <mailinglists at xgm.de <mailto:mailinglists at xgm.de>
>         <mailto:mailinglists at xgm.de <mailto:mailinglists at xgm.de>>
>         >     <mailto:mailinglists at xgm.de <mailto:mailinglists at xgm.de>
>         <mailto:mailinglists at xgm.de <mailto:mailinglists at xgm.de>>>> 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
>         >
>         >
> 
> 
> 


More information about the petsc-users mailing list