On 12. aug. 2011, at 15.51, Jed Brown wrote:
> If by "brute force", you mean volumetric discretizations of the differential 
> equations, then this is indeed the largest user base. But there are many 
> optimal methods in this category, such that I think "brute force" would be a 
> misnomer.
That's what I mean, yes. I'm unfamiliar with the terminology - I certainly do 
not mean that such methods are inefficient or in any way stupid.

> What sort of problem does your dense equation system come from? E.g. does it 
> come from a boundary element method? Can you give a rough estimate of the 
> condition number? Are the eigen/singular values well-clustered? For many 
> dense problems, a Krylov method alone won't beat a direct solver like LAPACK, 
> but if it has extra structure, and especially if it can be stored/applied in 
> less than O(n^2) work, then iterative methods may be competitive.
The problem is a discretized integral equation. It does not quite fall into the 
boundary element category, but it's not too far off, in a sense. I did not do 
any sophisticated analysis of the singular values, but I do know that the 
condition number (largest over smallest singular value) is not too bad.

The physics of the problem is light scattering from a (weakly, but not 
extremely weakly) rough surface. The matrix has a big diagonal, as to 0. order 
the specular (mirror-like) reflection is the same as for a flat interface. This 
also means I have a decent guess solution  (I think).

Another benefit of the iterative method is that I could possibly avoid building 
the matrix explicitly. Setting up the matrix currently takes orders of 
magnitude less time than solving the equation system, and eats enormous amounts 
of computer memory.

My supervisor has used BiCGSTAB with success on a similar, but harder problem 
(larger roughness regime).

> How large are these matrices likely to be and about how many processors would 
> you like to run on?
If I explicitly build the matrices, the ones I have done so far are 20 GB. More 
would give me better resolution, so that would be nice. I would like to run on 
at least a single node with 24 cores, as that's the machine architecture for 
the computer I've got CPU time on.

It's possible that, if the method converges after very few iterations, that it 
could be faster to simply build the matrix on the fly as required.

Cheers
Paul



Reply via email to