[petsc-users] Reshaping a vector into a matrix

S V N Vishwanathan vishy at stat.purdue.edu
Fri Jan 7 12:21:10 CST 2011


Dear Barry,

Thanks for your help. Now the code works as expected (attached). There
is one more problem that I am facing.

If you remember I have 

vec = (vec1^t, vec2^t,...,veck^t)^t

and given the MAIJ matrix X I need to compute

fx = (X.vec1, X.vec2, ...,X.veck)

>From what I understand so far, if I compute X.vec then I get a vector of
the form

x_1.vec1
x_1.vec2
.
.
.
x_n.veck

where x_i denotes the i-th row of X. 

In my application I need access to (x_i.vec1, x_i.vec2, ...., x_i.veck)
on the same processor. If I use the local size provided by the
MatGetLocalSize how do I ensure that the local vectors are aligned w.r.t
k?

vishy

 

On Thu, 2011-01-06 at 21:53 -0600, Barry Smith wrote:
> You've assumed that the PETSC_DECIDE for the MatLoad() for local sizes will match that for the VecCreate(). In general they will not be the same.
> Once you've created your MATMAIJ   (by they way you don't need to call MatAssembly on the MAIJ matrix) call MatGetLocalSize() and use that local size in the construction of the vector.
> 
>    Barry
> 
> 
> On Jan 6, 2011, at 9:46 PM, S V N Vishwanathan wrote:
> 
> >>> 
> >>> Is there any place to read up about MAIJ matrices. I read the manual
> >>> pages but they were rather cryptic. Perhaps some example code?
> >> 
> >> http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/src/snes/examples/tutorials/ex48.c.html is the only example that uses. 
> > 
> > I wrote a little example (attached) to test my understanding of the MAIJ
> > matrices. When I run it on a single processor I have no trouble but when
> > I use mpiexec -n 2 I get the following errors. Any pointers on how to
> > overcome this problem are appreciated. The code loads a matrix from a
> > file, which can be downloaded from
> > 
> > http://www.stat.purdue.edu/~vishy/adult9.train.x
> > 
> > Before someone has ideas ;-), I should clarify that this is a standard
> > machine learning dataset.
> > 
> > [0]PETSC ERROR: --------------------- Error Message
> > ------------------------------------
> > [0]PETSC ERROR: Nonconforming object sizes!
> > [0]PETSC ERROR: Mat mat,Vec y: local dim 48843 48842!
> > [0]PETSC ERROR:
> > ------------------------------------------------------------------------
> > [0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec 20
> > 14:26:37 CST 2010
> > [0]PETSC ERROR: See docs/changes/index.html for recent updates.
> > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> > [0]PETSC ERROR: See docs/index.html for manual pages.
> > [0]PETSC ERROR:
> > ------------------------------------------------------------------------
> > [0]PETSC ERROR: ./chumma on a linux-gnu named vishy-laptop by vishy Thu
> > Jan  6 22:28:26 2011
> > [0]PETSC ERROR: Libraries linked
> > from /home/vishy/Repositories/GenEntropy/Code/hpc/petsc-3.1-p7/linux-gnu-cxx-debug/lib
> > [0]PETSC ERROR: Configure run at Thu Dec 30 23:48:41 2010
> > [0]PETSC ERROR: Configure options --with-debugging=yes
> > --with-clanguage=C++ --with-shared --download-mpich=ifneeded
> > [0]PETSC ERROR:
> > ------------------------------------------------------------------------
> > [0]PETSC ERROR: MatMult() line 1889 in src/mat/interface/matrix.c
> > [0]PETSC ERROR: main() line 61 in chumma.cpp
> > application called MPI_Abort(MPI_COMM_WORLD, 60) - process 0[cli_0]:
> > aborting job:
> > application called MPI_Abort(MPI_COMM_WORLD, 60) - process 0
> > [0]0:Return code = 60
> > [0]1:Return code = 0, signaled with Interrupt
> > 
> > vishy
> > <chumma.cpp>
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: chumma.cpp
Type: text/x-c++src
Size: 2659 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110107/f3bef795/attachment.cpp>


More information about the petsc-users mailing list