Dne 8.11.2010 12:24, Jed Brown napsal(a): > On Mon, Nov 8, 2010 at 12:14, Daniel Langr <daniel.langr at gmail.com > <mailto:daniel.langr at gmail.com>> wrote: > > MatCreateMPISBAIJWithArrays() copy the arrays, so it won't help me. > I need all available memory for a matrix, so I cannot have it in > memory twice. > > > What preconditioners do you use? Block Jacobi with incomplete > factorization, for example, uses the same amount of memory as the > matrix, presumably you could free those arrays before factoring. This > doesn't help if you use SOR.
I am looking for several eigenvalues and eigenvectors with SLEPc. > Matrices emerge in new methods in nuclear structure computations > (symmetry-adapted no-core shell models). I don't know how to > allocate arrays exactly. > > > Where does the sparsity of the matrix come from? Lie algebra, Slater determinants, SU(3) groups, new bases... But I don't understand all these things much, I just solve their (physicist's) eigenproblems. > But, I can generate a matrix into CSR format and then probably > reorganize it (split into diagonal and off-diagonal entries). > > > It's not clear how you could generate it in CSR format to begin with, > considering that if you underallocate, you will be forced to reallocate > and copy. It would be possible to have a > MatCreateMPISBAIJWithSplitArrays, but it would be very peculiar to be > able to create the arrays without being able to preallocate correctly. I don't know the exact matrix structure, but I need some estimate about the number of nonzeros, since the matrix needs to fit into a memory. And I can simply use 85-90% of available memory for arrays, and just left some space for vectors (but vectors are very small - matrices are not much sparse). If I underestimate arrays' size, I will abort a computation, cause I don't have any more memory. Daniel > Jed
