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 >>>> >> > >
