[Coin-discuss] Experiences with paralleling simplex

Jonathan Eckstein jeckstei at rutcor.rutgers.edu
Fri Jan 5 16:27:20 EST 2007


Esben Mose Hansen wrote:

> Can you give me a clue to what makes the sparse case harder than the dense? I 
> must admit, I did not even suspect that any difficulty might arise from this 
> aspect :)

The matrices are not stored in the format one might assume from reading 
elementary textbooks on simplex.  The matrix is usually stored by column 
in a sparse format, using pairs of the form (rownumber,coefficient), for 
each nonzero.  The "tableau" found in textbooks is not stored, but 
instead some representation of the basis matrix B that makes solving 
equations of the form B x = r or tranpose(B) y = c efficient.  Some kind 
of sparse LU factorization is typical.  The trickiest calculation is 
updating this factorization with each pivot.  Simplex is also a really 
tricky algorithm to implement, with many numerical pitfalls.

Unless the problem is unusually dense (as sometimes happens in data 
analysis applications, but is otherwise very rare), an implementation 
that uses naive matrix storage will be totally uncompetitive, even with 
a lot of parallelism.

> ok, thank you. Going for cplex might not be a viable solution, depending on 
> the costs.  
> 
> The (25ish) problems are definitely related, but this is definitely worth 
> looking into.

Depending on how they're related, there also might be the option 
sticking each problem on its own processor, and solving them in 
parallel.  That would not be so hard with COIN.

> Thank you for your response. It seems this is quite harder than I naively 
> thought.

You're welcome.  It is not just a programming project, that is for sure.

   J E




More information about the Coin-discuss mailing list