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

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

 November 12, 2010, 18:59 Efficient methods for solving thousands of right-hand-sides? #1 New Member   Bob Edwards Join Date: Nov 2010 Posts: 1 Rep Power: 0 Sponsored Links 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. Cheers, Bob

 November 13, 2010, 11:44 #2 Member   Anonymous Join Date: Jul 2009 Posts: 44 Rep Power: 10 I don't know what SPD means, can't you just use LU decomposition? That's very efficient for many RHsides

 November 13, 2010, 23:55 #3 Super Moderator     Praveen. C Join Date: Mar 2009 Location: Bangalore Posts: 259 Blog Entries: 6 Rep Power: 11 How are the thousands of solutions going to be used ? Perhaps there is a better way to do it if you explain your situation.

 November 15, 2010, 17:02 #4 Senior Member   Arjun Join Date: Mar 2009 Location: Nurenberg, Germany Posts: 700 Rep Power: 19 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).

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Runge_Kutta Main CFD Forum 32 March 1, 2005 02:41 kenn Main CFD Forum 2 July 18, 2004 18:28 Junseok Kim Main CFD Forum 21 May 20, 2001 08:47