Maybe look at PCREDISTRIBUTE? On Tue, May 15, 2012 at 1:44 PM, Andrew Spott <andrew.spott at gmail.com>wrote:
> That would be ideal, but may be impractical... is it possible to redo the > distribution after the matrix is assembled? How would I go about doing > that? > On May 15, 2012 12:38 PM, "Shri" <abhyshr at mcs.anl.gov> wrote: > >> By default, PETSc uses a row distribution with the first m rows on >> processor 0, next m rows on processor 1, and so on. >> If the order is not important, then you could remove rows/columns from >> each processor instead of removing the last n-m rows on the last processor. >> Thus, the load balance would still be even. >> >> Shri >> >> ------------------------------ >> >> I'm solving the schrodinger equation in a basis state method and looking >> at adding the azimuthal quantum numbers (the m's) to my basis so I can look >> at circularly polarized light. >> >> However, when I do this, I'll need to do some sort of convergence study >> to make sure I add enough of them. The way my code is structured, it will >> probably be easier to just remove rows and columns from a bigger matrix, >> instead of adding them to a smaller matrix. However, depending on the way >> I structure the matrix, I could end up removing all the values (or a >> significant portion of them) from a processor when I do that. >> >> Speaking more on that, is the "PETSC_DECIDE" way of finding the local >> distribution smart in any way? or does it just assume an even distribution >> of values? (I assume that it assumes a even distribution of values before >> the assembly, but does it redistribute during assembly?) >> >> Thanks, >> >> -Andrew >> >> On May 15, 2012, at 6:40 AM, Jed Brown wrote: >> >> On Mon, May 14, 2012 at 10:39 PM, Andrew Spott <andrew.spott at >> gmail.com>wrote: >> >>> That is what I figure. >>> >>> I'm curious though if you need to manually determine the local row >>> distribution after you do that. (for example, say you completely remove >>> all the values from the local range of one processor? that processor >>> wouldn't be utilized unless you redistribute the matrix) >>> >> >> What sizes and method are we talking about? Usually additional (compact) >> basis functions only make sense to add to one of a small number of >> processes. >> >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120515/bce546f5/attachment.htm>
