redistribution of vectors
Stephan Kramer
stephan.kramer at imperial.ac.uk
Tue Feb 10 17:51:52 CST 2009
Barry Smith wrote:
>
> On Feb 10, 2009, at 5:01 PM, Stephan Kramer wrote:
>
>>>
>
>>>>
>>>>
>>>
>>> You can certainly use a VecScatter to redistribute a vector. You
>>> already have the
>>> indices from MatGetSubMatrix() so it should be easy.
>>>
>>> However, you can also use VecLoadIntoVector() and provide an initial
>>> partitioning.
>>>
>>> Matt
>>>
>> Ah brilliant, I must have overlooked these options (there are so many
>> in PETSc!). In that case is there also something like
>> VecLoadIntoVector for MatLoad, i.e. where I specify the distribution
>> beforehand, otherwise I'll just go for the MatGetSubMatrix() +
>> VecScatter().
>
> We don't currently have a MatLoadIntoVector(). The current plan is
> to actually remove VecLoadIntoVector() and have both VecLoad() and
> MatLoad() be essentially "load into" operations where one is free to
> define the layout of the vector and matrix before or not thus getting
> the full spectrum of possibilities in one clean interface. Sadly we
> haven't done this reorganization due to having many other things to do.
>>
>>
>> Just a small related question, for MatGetSubMatrix where I ask for
>> the rows owned by each process but all columns, should I really
>> assemble an index set ranging over all global indices? This seems a
>> bit wasteful and non-scalable. Or should I put in the effort and,
>> using information I have over my halo regions, work out which columns
>> might have nonzeros for these rows. Or am I missing something and is
>> there an easier short-cut?
>
> It is true that it is not totally scalable but then dumping some
> huge honkying sparse matrix to a file and reading it in is not
> scalable either. We've never had a problem with this yet for
> reasonable matrix sizes. Rather than fixing this MatGetSubMatrix() ,
> in your case, having a better MatLoad() merged with
> MatLoadIntoMatrix() would be the thing I recommend optimizing. But
> frankly until you get up to 1 billion unknowns what is there now is
> probably good enough.
>
> Barry
>
Good point. No, wasn't really planning on using this for anything that
huge. Thanks a lot for your answers
Cheers
Stephan
>>
>>
>> Thanks a lot
>> Stephan
>>
>>>
>>>> Cheers
>>>> Stephan
>>>>
>>
>
>
More information about the petsc-users
mailing list