Parallelization of a CFD code
Hallo CFD experts!
I'm trying to paralize a cfd code at algebraic system level. I have read a lot, and i concluded that Domain Decomposition and Alternating Schwarz method is a good choice. I tried to use Alternating Schwarz method (with overlaping domains) as preconditioner for GMRES. I'm solving (in parallel) the preconditioned system in each iteration with GMRES again, but with low accuracy. Nevertheless, results are'n got... I have no reduce in time. And the iterations of the outer GMRES doesn't reduce much. I'm testing the method in a very simple problem: Poisson equation in a close cube. Is the method i use the right one, or I'm doing something wrong? What methods are being used mostly in commercial codes? Many thanks :) |
A lot of questions come to mind... domain decomposition is certainly the way to go, but
What hardware and languages are you using? Overhead associated with parallelization and the granularity of your problem have a huge effect on your speedup. e.g., if you're using a distributed memory setup, and you're writing a very fine-grained code (lots of data exchange in a given iteration), you'll often get code that was slower than the original serial code. |
Quote:
I haven't do it because i count the total time that precondition systems need to run, i divide it with the number of processes (=number of subdomains) and i calculate the time of parallel code (minimum time because no data exchange time included). But this minimum time is still above the normal time of serial GMRES/ILU solver :confused: That's why i'm wondering if Domain Decomposition and additive Schwarz preconditioner is a way to go. Thanks for the reply! |
All times are GMT -4. The time now is 00:25. |