[Coin-discuss] ClpCholesky

Kish Shen kish.shen at crosscoreop.com
Mon Apr 30 20:41:55 EDT 2007


On Thursday 12 April 2007 15:03, Andreas Waechter wrote:
> Hi Paul,
> 
> I think the problem is that the makefiles are not set up to compile the 
> WSMP interface code (nor the UFL code).  If you need it, I can fix that.
> 
> Instead of clogging the mailing list, we should probably communicate via 
> the Clp Trac system.  Please submit a ticket there, and let me know which 
> version of Clp you are using (trunk?).  Once you submitted the ticket, 
> please send me a message.
> 
> Cheers
> 
> Andreas
> 

Hi,

I have been trying the different Cholesky codes, by hacking the Makefile to compile the 
various code. It would be very nice if they can be compiled without any hacking...

The DOxygen documentation for the UFL code mentions that you need the UFL AMD code,
and also optionally CHOLMOD. I have been able to use the UFL code, and got much better
performance than the default ClpCholeskyBase for solving problems.

However, I was not able to get the CHOLMOD code working, with CLP_USE_CHOLMOD 
defined (and linking in the right libraries) along with UFL_BARRIER, I get a segmentation 
fault when I try to solve a problem. I posted a message about this on the CLP mailing list
a month or so ago, and did not get any replies....

Is this CHOLMOD code expected to give more performance imporvements over using 
UFL_BARRIER alone?

I also tried to use WSSMP code.   This seems to require some external code, but I could not
find any mention of this in the DOxygen documentation. Does this use the WSSMP from IBM?
I could not link it this code successfully with libClp -- I am compiling on Linux with gcc 
compiler. From what I can tell, the WSSMP Linux library for IA32 requires an Intel compiler.
Am I correct?

Thanks in advance for any help/information!

Cheers,

Kish Shen

> On Wed, 11 Apr 2007, Paul Enders wrote:
> 
> > If I define "#define WSSMP_BARRIER 1"  as below I get the following error
> > :"...undefined reference to
> > `ClpCholeskyWssmp::ClpCholeskyWssmp(int)'collect2: ld returned 1 exit status
> > make: *** [clp_solver] Error 1". When I skip the #define it will compile and
> > solve, but using the Dense method.
> >
> > I have issues figuring it out, would anybody have a suggestion or an example
> > where this works?
> >
> > In a post in March there was a suggestion to use "ClpCholeskyUfl.hpp" but I
> > also did not get that to work.
> >
> > Any help would be appreciated.
> >
> > Thanks,
> >
> > Paul
> >
> > #include<string>
> > #include<iostream>
> > #include<fstream>
> > #include <cstdlib>
> > #include "ClpInterior.hpp"
> > #include "ClpSimplex.hpp"
> > #include "ClpCholeskyWssmp.hpp"
> > #include "ClpCholeskyDense.hpp"
> >
> > #define WSSMP_BARRIER 1
> >
> > using namespace std;
> > int main(){
> > string MPSName = "LP_60.mps";
> > ClpInterior model;
> > model.readMps(MPSName.c_str(),1,1);
> > #ifdef WSSMP_BARRIER
> > ClpCholeskyWssmp * cholesky = new ClpCholeskyWssmp();
> > #else
> > ClpCholeskyDense * cholesky = new ClpCholeskyDense();
> > #endif
> >
> > model.setCholesky(cholesky);
> > model.primalDual();
> > cout << "Objective Value= " << model.getObjValue() << "\n";
> >
> > system("PAUSE");
> >
> > return(1);
> >
> > }
> >
> >
> > _______________________________________________
> > Coin-discuss mailing list
> > Coin-discuss at list.coin-or.org
> > http://list.coin-or.org/mailman/listinfo/coin-discuss
> >
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
> 



More information about the Coin-discuss mailing list