← Back to team overview

dolfin team mailing list archive

Re: [Bug 706909] [NEW] [python] matrix multiplication fails in parallel

 

On Monday January 24 2011 09:54:15 Garth N. Wells wrote:
> On 24/01/11 17:45, Johan Hake wrote:
> > On Monday January 24 2011 09:43:45 Johan Hake wrote:
> >> On Monday January 24 2011 09:33:12 Garth N. Wells wrote:
> >>> On 24/01/11 17:17, Johan Hake wrote:
> >>>> Isn't there a way to initialize a paralell vector with arbitrary
> >>>> distribution pattern?
> >>>> 
> >>>> There is a way to general a local range from a given entity size using
> >>>> MPI.local_range. One should be able to generate a distributed Vector
> >>>> with this information.
> >>> 
> >>> This isn't guaranteed to work since using MPI.local_range may produce a
> >>> vector with a layout that is inconsistent with the matrix layout.
> >> 
> >> Ok.
> >> 
> >>> A Vector could be created using the local range data from the Matrix.
> >> 
> >> Is this possible to do using the GenericMatrix inteface?
> > 
> > GenericVector that should be.
> 
> Yes, via
> 
>     GenericVector::resize(std::pair<uint, uint> range)

Simple enough ;) I just looked at the top of GenericVector...

I think we need a typemap for stad::pair<uin, uint>. Will look into it.

Johan

> Garth
> 
> > Johan
> > 
> >> Johan
> >> 
> >>> Garth
> >>> 
> >>>> Johan
> >>>> 
> >>>> On Monday January 24 2011 05:17:21 Joachim Haga wrote:
> >>>>> Public bug reported:
> >>>>> 
> >>>>> The python code for __mul__() assumes an empty vector suitable for
> >>>>> 
> >>>>> mult() can be created from just the dimensions of the matrix:
> >>>>>     if type(other) == Vector:
> >>>>>         ret = Vector(self.size(0))
> >>>>> 
> >>>>> This is not true in parallel. And it won't help to copy the input
> >>>>> vector, as that only works for square matrices.
> >>>>> 
> >>>>> How to create a vector which is compatible with a given matrix at
> >>>>> this point (only the matrix available, not the sparsity pattern)?
> >>>>> Would it perhaps be acceptable to add methods create_rhs_vector(),
> >>>>> create_lhs_vector() to GenericMatrix?
> >>>>> 
> >>>>> ** Affects: dolfin
> >>>>> 
> >>>>>      Importance: Undecided
> >>>>>      
> >>>>>          Status: New
> >>>> 
> >>>> _______________________________________________
> >>>> Mailing list: https://launchpad.net/~dolfin
> >>>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >>>> Unsubscribe : https://launchpad.net/~dolfin
> >>>> More help   : https://help.launchpad.net/ListHelp
> >>> 
> >>> _______________________________________________
> >>> Mailing list: https://launchpad.net/~dolfin
> >>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >>> Unsubscribe : https://launchpad.net/~dolfin
> >>> More help   : https://help.launchpad.net/ListHelp



References