Tim, Ok, this is a bit more reasonable :-)
The proceedure I discussed previously is the same. Just use for the right hand side matrix a dense vector with M columns whose entries are the first M columns of the identity, then solve with it. Barry On Thu, 16 Aug 2007, Dr. Timothy Stitt wrote: > Barry, > > If it helps I was speaking to some of the project members and they mention > that they actually only need the first M columns of the inverse. The equations > can also be rewritten so that they only require the last M columns also or > first/last M rows. I believe the retarded Green's Function forms an integral. > For the integral in the real plane (which is repeated for thousands of energy > points and hence requires thousands of inversions) they need only the first > few columns as described above. > > I would be grateful if you could suggest a possible approach based on this > extra information. I much appreciate your comments already. > > Thanks, > > Tim. > > Barry Smith wrote: > > Tim, > > > > Do you know what the G_r is then used for? > > > > Thanks > > > > Barry > > > > > > On Wed, 15 Aug 2007, Dr. Timothy Stitt wrote: > > > > > > > Barry, > > > > > > The group I am working with are calculating what they call retarded > > > Green's > > > Functions of the form: > > > > > > G_r=(E-H)^(-1) > > > > > > where (E-H) is a matrix. Apparently they say there is no way to avoid this > > > calculation. > > > > > > Tim. > > > > > > Barry Smith wrote: > > > > > > > Tim, > > > > > > > > A dense matrix with 100,000 rows and columns requires 80 gigabytes > > > > to > > > > store > > > > the result. 1,000,000 rows and columns requires 8,000 gigabytes. With > > > > this range of sizes I wouldn't even consider iterative solvers and > > > > would only use direct solvers. I would divide MPI_COMM_WORLD into N > > > > subcommunicators of size n each and have each subcommunicator work on a > > > > collection of columns of the inverse. For matrix sizes of 5,000 to say > > > > 20,000? > > > > I'd make n be 1 and just use PETSc's native LU solver and use > > > > MatMatSolve() > > > > and not use KSP at all. For larger matrices you may be able to use an n > > > > of 2 > > > > to possibly as large as 8? > > > > > > > > Now my numerical analysis training :-) requires me to state the > > > > following. > > > > It is completely insane to compute the EXPLICIT inverse of large sparse > > > > matrices > > > > since they are dense. Please tell me what the inverses are used for and > > > > perhaps > > > > we can come up with an approach the does not require computing them. > > > > > > > > Barry > > > > > > > > > > > > > > > > On Wed, 15 Aug 2007, Dr. Timothy Stitt wrote: > > > > > > > > > > > > > Firstly, many thanks to everyone who has replied with information. It > > > > > has > > > > > been > > > > > very useful indeed. Much appreciated. > > > > > > > > > > Barry, in this case the sparse matrices would be of ~ order 5000x5000. > > > > > They > > > > > could grow in size but this is the sample matrices I am working with > > > > > right > > > > > now. We would love a scalable approach so we can deal with more > > > > > interesting > > > > > problems and hence larger sparse matrices. Hope that helps. > > > > > > > > > > Many thanks again. > > > > > > > > > > Tim. > > > > > > > > > > Barry Smith wrote: > > > > > > > > > > > Tim, > > > > > > > > > > > > How large are you matrices? > > > > > > > > > > > > Barry > > > > > > > > > > > > > > > > > > On Wed, 15 Aug 2007, Dr. Timothy Stitt wrote: > > > > > > > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > > > I am currently investigating the best way to perform the inversion > > > > > > > of > > > > > > > a > > > > > > > large > > > > > > > sparse matrix and came upon the idea of using PETSc as a framework > > > > > > > for > > > > > > > testing > > > > > > > various strategies from direct to iterative methods on my sample > > > > > > > matrices. > > > > > > > In > > > > > > > this setup for an NxN sparse matrix A I would have N rhs's > > > > > > > representing > > > > > > > the > > > > > > > Identity matrix and then solve for X. I wanted to experiment with > > > > > > > both > > > > > > > parallel and serial strategies ranging from LU Decomposition using > > > > > > > SuperLU, > > > > > > > MUMPS etc. to iterative methods using GMRES etc. Am I right in > > > > > > > thinking > > > > > > > that > > > > > > > all this can be done in PETSc by setting up a core framework and > > > > > > > then > > > > > > > varying > > > > > > > the solver methods etc? > > > > > > > > > > > > > > I have looked over the sample KSP Solver codes although they only > > > > > > > seem > > > > > > > to > > > > > > > suggest single vectors for x and b. Can this be changed to accept > > > > > > > multiple > > > > > > > vectors? Can anyone suggest a sample code that maybe demonstrates > > > > > > > the > > > > > > > sort > > > > > > > of > > > > > > > thing I want to achieve...if it is in fact possible. > > > > > > > > > > > > > > Thanks in advance for any assistance given, > > > > > > > > > > > > > > Regards, > > > > > > > > > > > > > > Tim. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
