Hello Barry,
Thanks for your quick response. The one that I have compiled was PETSc-3.1-p8. 
Does this mean I will need to re-compile the most recent 3.2 version to get 
this working? I was surprised due to the fact that PetscBinaryWrite.m did not 
even work for REAL matrix. The error I got while reading the file in PETSc was :
[0]PETSC ERROR: Read from file failed!
[0]PETSC ERROR: Read past end of file!


You mentioned in your reply that "reading ASCII files in parallel is not 
viable. " 
Does any part of my code show that I am trying to do this? I am asking this 
just to make sure that I am doing the right thing and not making any such 
mistakes.
Did you mean that I should avoid doing something like this :
ierr = MatLoad(binviewer, MATMPIAIJ, &C) ; CHKERRQ(ierr) ;

Is this really not storing a sparse matrix(if C is sparse) in parallel across 
different processors( if I were running this on a multi-processor computer or a 
cluster)? 
My ultimate goal is the following, which I am copying here from my previous 
email :
 I plan on assembling my matrix (very large square sparse matrix, size 
greater than 1e+8) in MATLAB, which does not take too long to assemble 
in MATLAB at all. Then I will write the matrix to a binary file and read
 that in PETSc and solve a very large linear system of equations in 
parallel in PETSc using MPI. 

All I want to make sure is be able to read the matrix in PETSc and then have it 
distribute over different processors and then solve the linear system. 

Sorry for repeating my goals here again, but I was just trying to get any 
feedback whether this is really the way to work with PETSc.

Thank you for your help.

-Amrit



> From: bsmith at mcs.anl.gov
> Date: Sun, 4 Sep 2011 21:14:24 -0500
> To: petsc-users at mcs.anl.gov
> Subject: Re: [petsc-users] Write complex matrix/vector from Matlab
> 
> 
>   Amrit,
> 
>     We have just recently made sure that PetscBinaryWrite.m and 
> PetscBinaryRead.m fully support complex numbers; you can access the release 
> candidate for PETSc 3.2 for this support 
> 
> One can use the following tarball. It will correspond to
> petsc-3.2 sources for the next few days. And i've set it up to be
> updated every 3 hours [from the sources in mercurial].
> 
> http://ftp.mcs.anl.gov/pub/petsc/petsc-dev.tar.gz
> 
> or
> 
> > 
> >   You can find the PETSc 3.2 release candidate via Mecurial at:
> >> 
> >> ssh://petsc at petsc.cs.iit.edu//hg/petsc/releases/petsc-3.2               
> >>          or    http://petsc.cs.iit.edu/petsc/releases/petsc-3.2
> >> ssh://petsc at petsc.cs.iit.edu//hg/petsc/releases/BuildSystem-3.2         
> >>   or    http://petsc.cs.iit.edu/petsc/releases/BuildSystem-3.2
> 
>   Should you have problems reading the complex matrices/vectors saved from 
> MATLAB please send all information to petsc-maint at mcs.anl.gov
> 
>   We do not support the Matrix Market sparse format because it is not 
> scalable for large matrices (i.e. it is too slow) ; reading ASCII files in 
> parallel is not viable.
> 
>  
>   Barry
> 
> On Sep 4, 2011, at 9:05 PM, amrit poudel wrote:
> 
> > 
> > Hello everyone,
> > 
> > Does anyone here know how one can write a complex or real, matrix or vector 
> > (matrix could be sparse or full) in MATLAB  to a binary file  such that it 
> > can be read correctly by PETSc?
> > I tried using  PetscBinaryWrite.m that came with PETSc ( /bin/matlab) to 
> > write a simple real (or complex), full (or sparse) matrix in binary file 
> > named 'matrix.dat' and tried reading it in PETSc, but it absolutely does 
> > not work :(
> > 
> > I did PetscBinaryWrite('matrix.dat', C) to write a matrix C in an empty 
> > file named 'matrix.dat' in MATLAB. Then I tried reading 'matrix.dat' file 
> > in PETSc using the following command :
> > 
> > PetscViewer        binviewer ;
> > Mat                    C ;
> > char            fileC[PETSC_MAX_PATH_LEN] ;
> > 
> > ierr = PetscOptionsGetString(PETSC_NULL, "-fC", fileC, 
> > PETSC_MAX_PATH_LEN-1, PETSC_NULL) ; CHKERRQ(ierr) ;
> > 
> > ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD, fileC, FILE_MODE_READ, 
> > &binviewer) ; CHKERRQ(ierr) ;
> > 
> > ierr = MatLoad(binviewer, MATMPIAIJ, &C) ; CHKERRQ(ierr) ;
> > 
> > 
> > I must add that I compiled PETSc with complex numbers.  
> > 
> > I plan on assembling my matrix (very large square sparse matrix, size 
> > greater than 1e+8) in MATLAB, which does not take too long to assemble in 
> > MATLAB at all. Then I will write the matrix to a binary file and read that 
> > in PETSc and solve a very large linear system of equations in parallel in 
> > PETSc using MPI. Hence, I really need to be able to write the matrix in 
> > MATLAB to a binary file  such that PETSc can correctly read the matrix.
> > 
> > I am really surprised to find out that PETSc cannot read/write a matrix or 
> > vector, full or sparse, real or complex in MATRIX MARKET FORMAT. I have 
> > gone though the manual, googled around quite a bit, but I just have not 
> > found anything useful. 
> > 
> >  I will truly appreciate any help or a pointer in this regard.
> >  
> > Thank you.
> > 
> > Amrit 
> > 
> 
                                          
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110905/bedff8a9/attachment.htm>

Reply via email to