I have reached my limit on the following problem:
As part of my FEA code (in MATLAB) I need to find x, x=A\b. Both A and b are sparse, complex, double precision matrix and vector respectively. The size of A is (n,n) and b is (n,1) where n is 850000 and can increase to up 2000000. In addition, A is symmetric and mostly diagonal.
I have two HPC clusters to my disposal, one with 5.7TB of RAM and the other with 1.5TB (but faster cores). Technically speaking I can solve the system as is, and just wait for approximately 15days. However, I need to perform solve the system of equations up to 10x per simulations. Therefore, 15days is not an acceptable amount of time.
I tried iterative methods however these did not yield the same results as the backslash operator. Also in some cases convergence was not obtained.
I have converted the x=A\b part into a mexa64-format to potentially reduce the time. However, I fear it will still take days.
Any suggestions on how to tackle this problem? Are there any commercial codes that can do this faster/more efficient? And how commercial FEA packages solve this problem when a model has over 1m nodes?
Any help in much appreciated! Thanks in advance.