<div dir="ltr">Hi,<div><br></div><div>Thanks for your attention. I created A_new explicitly and set the type to dense, and it ran as expected. I also did </div><div><br></div><div>A_new = A.duplicate()</div><div>
<p style="margin:0px">A_new.load(viewer_new)</p><p style="margin:0px"><br></p><p style="margin:0px">and it worked too!</p><p style="margin:0px"><br></p><p style="margin:0px">Regards,</p><p style="margin:0px">AR</p>
<p style="margin:0px"><br></p></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 30, 2016 at 7:12 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
  Ahh. When you use the "native" format with dense matrices you can only read the matrix back in later with a dense matrix. You need to set the A_new matrix type to dense before calling the load.<br>
<br>
  We need more error checking in the PETSc MatLoad() for non-dense matrix formats that properly stops the code with an error message that the file format is not handled by the matrix type. I will do this.<br>
<br>
   Barry<br>
<div><div class="h5"><br>
<br>
<br>
> On Jun 30, 2016, at 11:30 AM, Analabha Roy <<a href="mailto:hariseldon99@gmail.com">hariseldon99@gmail.com</a>> wrote:<br>
><br>
> Hi all,<br>
><br>
>  I'm trying to do basic binary input/output for parallel matrices. Following the example in "petsc4py/demo/binary-io/matvecio.py ", the code below seems to work fine (raw python file attached) with "mpirun -np 2 python ./test_binwrite.py" until I uncomment "#A.setType(PETSc.Mat.Type.DENSE)" in order to do it for parallel dense matrices. Then it crashes with error (stderr file attached, see below for highlighted message).  What am I doing wrong?<br>
><br>
> Python Code<br>
> ========================================================================================<br>
><br>
> #!/usr/bin/env python<br>
> """<br>
> Created on Wed Jun 29 22:05:59 2016<br>
><br>
> @author: <a href="mailto:daneel@utexas.edu">daneel@utexas.edu</a><br>
> """<br>
><br>
><br>
><br>
> import numpy as<br>
>  np<br>
><br>
> from petsc4py import<br>
>  PETSc<br>
><br>
> Print = PETSc.Sys.Print<br>
><br>
><br>
> matsize<br>
> = 100<br>
><br>
> filename<br>
> = 'tmpMatrix-A.dat'<br>
><br>
><br>
> A<br>
> = PETSc.Mat().create(PETSc.COMM_WORLD)<br>
><br>
> A<br>
> .setSizes([matsize, matsize])<br>
> #A.setType(PETSc.Mat.Type.DENSE)<br>
><br>
> A<br>
> .setUp()<br>
><br>
><br>
> Istart<br>
> , Iend = A.getOwnershipRange()<br>
> for I in xrange(Istart, Iend) :<br>
><br>
>     A<br>
> [I,:] = np.random.random(matsize)<br>
><br>
><br>
> A<br>
> .assemble()<br>
> Print("Random matrix assembled. Now writing to temporary file ...")<br>
> # save<br>
><br>
> viewer<br>
> = PETSc.Viewer().createBinary(filename, 'w')<br>
><br>
> viewer<br>
> .pushFormat(viewer.Format.NATIVE)<br>
><br>
> viewer<br>
> .view(A)<br>
> Print("Written to ", filename)<br>
> # reload<br>
> Print("Now reloading from ", filename)<br>
><br>
> viewer_new<br>
> = PETSc.Viewer().createBinary(filename, 'r')<br>
><br>
> viewer_new<br>
> .pushFormat(viewer.getFormat())<br>
><br>
> A_new<br>
> = PETSc.Mat().load(viewer_new)<br>
> assert A_new.equal(A), "Reload unsuccessful"<br>
> Print("Reload successful")<br>
> ========================================================================================<br>
><br>
><br>
><br>
> stderr output for parallel dense matrices:<br>
> ========================================================================================<br>
> Random matrix assembled. Now writing to temporary file ...<br>
><br>
> Written to  tmpMatrix-A<br>
> .<br>
> dat<br>
> Now reloading from  tmpMatrix-A<br>
> .<br>
> dat<br>
> Traceback<br>
> (most recent call last):<br>
><br>
>   File<br>
> "./test_binwrite.py", line 36, in <module><br>
><br>
> Traceback<br>
> (most recent call last):<br>
><br>
>     A_new<br>
> = PETSc.Mat().load(viewer_new)<br>
><br>
>   File<br>
> "./test_binwrite.py", line 36, in <module><br>
><br>
>       File<br>
> "PETSc/Mat.pyx", line 642, in petsc4py.PETSc.Mat.load (src/petsc4py.PETSc.c:118243)<br>
><br>
> A_new<br>
> = PETSc.Mat().load(viewer_new)<br>
><br>
>   File<br>
> "PETSc/Mat.pyx", line 642, in petsc4py.PETSc.Mat.load (src/petsc4py.PETSc.c:118243)<br>
><br>
> petsc4py<br>
> .PETSc.Errorpetsc4py.PETSc.Error: : error code 55<br>
> [0] MatLoad() line 1013 in /home/daneel/.local/src/petsc-3.7.2/src/mat/interface/matrix.c<br>
> [0] MatLoad_MPIAIJ() line 2947 in /home/daneel/.local/src/petsc-3.7.2/src/mat/impls/aij/mpi/mpiaij.c<br>
> [0] MatLoad_MPIAIJ() line 2947 in /home/daneel/.local/src/petsc-3.7.2/src/mat/impls/aij/mpi/mpiaij.c<br>
> [0] Out of memory. Allocated: 0, Used by process: 23687168<br>
> [0] Memory requested 5942180016<br>
><br>
> error code<br>
> 55<br>
> [1] MatLoad() line 1013 in /home/daneel/.local/src/petsc-3.7.2/src/mat/interface/matrix.c<br>
> [1] MatLoad_MPIAIJ() line 2967 in /home/daneel/.local/src/petsc-3.7.2/src/mat/impls/aij/mpi/mpiaij.c<br>
> [1] MatLoad_MPIAIJ() line 2967 in /home/daneel/.local/src/petsc-3.7.2/src/mat/impls/aij/mpi/mpiaij.c<br>
> [1] Out of memory. Allocated: 0, Used by process: 23506944<br>
> [1] Memory requested 18446744072415633408<br>
><br>
> --------------------------------------------------------------------------<br>
> mpirun noticed that the job aborted, but has no info as to the process<br>
> that caused that situation<br>
> .<br>
><br>
> --------------------------------------------------------------------------<br>
><br>
> ========================================================================================<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> ---<br>
> Analabha Roy<br>
> Postdoctoral Fellow<br>
> National Institute of Theoretical Physics (NiTheP)<br>
> Private Bag X1, Matieland,<br>
> Stellenbosch, South Africa,7602<br>
> Emails: <a href="mailto:daneel@utexas.edu">daneel@utexas.edu</a>, <a href="mailto:daneel@sun.ac.za">daneel@sun.ac.za</a>, <a href="mailto:hariseldon99@gmail.com">hariseldon99@gmail.com</a><br>
> Webpage: <a href="http://www.ph.utexas.edu/~daneel/" rel="noreferrer" target="_blank">http://www.ph.utexas.edu/~daneel/</a><br>
</div></div>> <stderr.txt><test_binwrite.py><br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>---<br>Analabha Roy<br>Postdoctoral Fellow<br><a href="http://www.nithep.ac.za/" target="_blank">National Institute of Theoretical Physics (NiTheP)</a><br>Private Bag X1, Matieland,<br>Stellenbosch, South Africa,7602<br>Emails: <a href="mailto:daneel@utexas.edu" target="_blank">daneel@utexas.edu</a>, <a href="mailto:daneel@sun.ac.za" target="_blank">daneel@sun.ac.za</a>, <a href="mailto:hariseldon99@gmail.com" target="_blank">hariseldon99@gmail.com</a><br><div><font face="tahoma, sans-serif">Webpage: <a href="http://www.ph.utexas.edu/~daneel/" target="_blank">http://www.ph.utexas.edu/~daneel/</a></font></div></div></div></div>
</div>