CFD Online Logo CFD Online URL
Home > Forums > Main CFD Forum

Efficient methods for solving thousands of right-hand-sides?

Register Blogs Members List Search Today's Posts Mark Forums Read

LinkBack Thread Tools Display Modes
Old   November 12, 2010, 18:59
Default Efficient methods for solving thousands of right-hand-sides?
New Member
Bob Edwards
Join Date: Nov 2010
Posts: 1
Rep Power: 0
bedward is on a distinguished road
Hello, in my application I have to solve a large sparse SPD linear system for thousands of right-hand-sides as part of a numerical simulation package. Currently I am using matlab, and the algorithm uses metis pre-ordering, cholesky factorization, and then uses parfor loops to parallelize the forward/back substitution solves to as many threads as there are CPU cores. The implementation is surprisingly efficient, but there are several drawbacks, most notably that the matlab parfor creates a copy of the sparse factorization of the system to each thread, which is a large overhead as the matrix factorization is many gigabytes.

I am coding in C++ now, and exploring tools and libraries for simultaneously solving thousands of right-hand-sides on a standard multi-core desktop PC (i7 quadcore type machine).

My current approach is going to be to use metis+cholmod to factor the system, and then use OpenMP to possibly parallelize the solution, but I would welcome any other suggestions. For now I am trying to keep the implementation to be non-mpi, that is, running on a single machine, but will likely explore using MPI in the future.


bedward is offline   Reply With Quote

Old   November 13, 2010, 11:44
Join Date: Jul 2009
Posts: 44
Rep Power: 10
gerritgroot is on a distinguished road
I don't know what SPD means, can't you just use LU decomposition?
That's very efficient for many RHsides
gerritgroot is offline   Reply With Quote

Old   November 13, 2010, 23:55
Super Moderator
praveen's Avatar
Praveen. C
Join Date: Mar 2009
Location: Bangalore
Posts: 277
Blog Entries: 6
Rep Power: 11
praveen is on a distinguished road
How are the thousands of solutions going to be used ? Perhaps there is a better way to do it if you explain your situation.
praveen is offline   Reply With Quote

Old   November 15, 2010, 17:02
Senior Member
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 733
Rep Power: 19
arjun will become famous soon enough
i have written smoothed multigrid lib in c++ that i use in cfd code. I intend to put it online as open source.
(This is based on algo as explained in pyAMG code which is already available as opensource).
arjun is offline   Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Any questions about Runge-Kutta methods Runge_Kutta Main CFD Forum 32 March 1, 2005 02:41
comments on FDM, FEM, FVM, SM, SEM, DSEM, BEM kenn Main CFD Forum 2 July 18, 2004 18:28
I just wonder why "SIMPLE" Junseok Kim Main CFD Forum 21 May 20, 2001 08:47

All times are GMT -4. The time now is 15:17.