Hi Peter Thanks for the info. I actually already have a coloring that is done through the discretrization that is near optimal. The issue is that I have a funny interprocessor dependence that is tricky to do my own sequential coloring. So I was looking at doing it in a global, parallel sense. For interest, I tried using the matGetColor() on my assembled matrix just to see how many colors it would take. My discretrization coloring has 35 colors (for a stencil with 33 cells) and the matGetColor() resulted in approximately 78 colors or about twice as many.
Thanks, Gaetan On Tue, Nov 5, 2013 at 11:39 AM, Peter Brune <[email protected]> wrote: > > > > On Tue, Nov 5, 2013 at 10:29 AM, Gaetan Kenway <[email protected]> wrote: > >> Hi >> >> I have a quick question regarding the MatGetColoring() function. >> According to the documentation, >> >> "For parallel matrices currently converts to sequential matrix and uses >> the sequential coloring on that." >> >> > The meaning of this is that it transfers the parallel matrix to a single > processor and does the coloring there, not that it only considers > on-processor entries. What comes out is therefore a valid column coloring > of the whole matrix. Parallel matrix coloring is in development but is not > quite ready for public consumption. Anecdotal evidence suggests that the > serial coloring does not become a bottleneck on small parallel runs. > > A good option is to provide the coloring through your discretization. > This will often be more efficient than the matrix colorings, as you know > the structure of your problem. > > - Peter > > >> I am wondering does this give actually give a valid parallel coloring? My >> application is a cell centered multi-block finite volume code, (with >> block-based decomposition) and the communications are done using a two >> level exchange of halo cells. I would like to use FD (actually forward mode >> AD to compute the jacbian matrix). So, what I'm wondering is, if a cell >> with color 0 is perturbed on processor 0, is it guaranteed that a residual >> on processor 1, that is influenced by the 0-colored cell on proc zero is >> *only* influenced by the color 0 from proc 0 and not a 0-colored cell on >> proc 1? >> >> I hope that is clear >> >> Thank you, >> >> Gaetan Kenway >> >> >> >> >> >> >
