[Coin-discuss] OSI, CLP pivot
Matthew Galati
magh at lehigh.edu
Tue May 9 23:15:32 EDT 2006
Hi John,
One thing that would be an immediate speedup for this kind of thing, is
to have a version of getBInvARow which does not actually do the memcpy.
Instead, it would be more efficient, if it just returned a pointer to
CLP's memory where z and slack exist. In profiling our codes, we have
found that getBInvARow takes a decent amount of our overall CPU, but 80%
of getBInvARow is the 2 memcpys.
Is this easy to add? Of course, the user has to promise not to mess up
that memory.
Matt
>Matt,
>
>If you want to keep to an OsiSolverInterface then I probably can't help,
>but if you know you will be using OsiClpSolverInterface then I may be able
>to help. If you can put together a driver to go through the steps you want
>then I can see how much faster I can make it - either by adding calls using
>the Clp getModelPtr() or more elegantly by adding a new specialOption bit
>to OsiClpSolverInterface.
>
>John
>
>
>
> Matthew Galati
> <magh at lehigh.edu>
> Sent by: To
> coin-discuss-boun Discussions about open source
> ces at list.coin-or. software for Operations Research
> org <coin-discuss at list.coin-or.org>,
> Mustafa Rasim Kilinc
> <mrk304 at lehigh.edu>
> 04/19/06 09:34 AM cc
>
> Subject
> Please respond to [Coin-discuss] OSI, CLP pivot
> Discussions about
> open source
> software for
> Operations
> Research
> <coin-discuss at lis
> t.coin-or.org>
>
>
>
>
>
>
>If someone wants to do the following, using the "simplex interface":
>{
> while{
> //some stuff...
> ...
> si->resolve();
> si->pivot(colIn, colOut, outStatus);
> ...
> si->getBasisStatus();
> si->getBInvARow( );
> ...
> //some stuff...
> }
>}
>
>Is it neccessary to call enable/disableSimplexInterface at every call?
>
>I noticed, that if you pivot, the "basis_" is not updated until
>disableSimplexInterface is called. So, the next call to getBasisStatus
>does not have updated status.
>
>The following seems to work, but is very slow. There is alot of time
>spent in enable/disable.
>
>{
> while{
> //some stuff...
> ...
> si->resolve();
> si->enableSimplexInterface();
> si->pivot(colIn, colOut, outStatus);
> si->disableSimplexInterface();
> ...
> si->enableSimplexInterface();
> si->getBasisStatus();
> si->disableSimplexInterface();
>
> si->enableSimplexInterface();
> si->getBInvARow( );
> si->disableSimplexInterface();
> ...
> //some stuff...
> }
>}
>
>Thanks,
>Matt
>
>
>_______________________________________________
>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