Skip to main content

Posts

Showing posts from May, 2009

MultiThreading and Direct Solvers

The next step towards an efficient Hybrid Solver is to optimize the computation of the Schur complement on each subdomain. Actually this part of the algorithm is the slowest, and it can be very slow. First of all the reordering is special, since the degrees of freedom on the interior must be numbered first. I use the CAMD ordering by Tim Davis and al., that provide satisfaying enough orderings. After that, I am concentrating on the code that computes the Schur complement. There is much work to do here. At the begining I was thinking about using MUMPS for this, since it has a subroutine for Schur complement computation and it is multithreaded. By googling around I found there is may be a (slightly) better solution, that would be to implement a sparse Cholesky solver based on the Direct Acyclic Graph (DAG) of the tasks. The computational tasks and their dependencies are expressed as an acyclic graph which is used to organize the thread hierachy to compute the Cholesky decompositio

Hybrid Solvers

For the moment, I am developing an Non-Overlapping Domain Decomposition Hybrid Solver for scalar PDE in 2D/3D domains. It decomposes the underlying mesh into regions, solves the Schur Complement System onto frontier nodes between regions and then solves the problem into each inner region nodes. This type of solver is said to be HYBRID because the Schur complement system is solved by a preconditioned iterative method whereas the inner problems are solved by a direct method. So it mixes the approach. However it requires less memory (and possibly time) than any direct solvers and in the same time suffer less of bad conditioning than iterative ones (the Schur complement system is well conditioned in that case). This technique allows to split computation easily since each regions are more or less independent during all the process. It has been used with success on computer clusters, and I wish to use it with shared memory paradigm in mind to solve huge systems on (relatively modes

Promising New Horizon 2010

I will use this blog to communicate about my personal research and developpement projects for efficient PDE solvers, geared toward structural mechanic. And also about other things, to show how my mind is like, if it as any importance... At the begining my aim was to start a company to sell solvers using recent research findings and new developpement in hardware (multi-threaded and GPU computing). But I finally gave up since I realized I wasn't tailored for such thing.