[Cbc] solving time in C++ >> time in Gams

Matteo Fischetti DEI m.fischetti at gmail.com
Wed Oct 10 12:13:01 EDT 2012


Dear Christos,

did you compare the n. of nodes (not time) required to solve that 
instance by using the two executables?

If the standalone executable that is 2.5 times faster also required 2 
times fewer nodes or so, then it may be the case that you had just bad 
luck in your run due to the "erratic behavior of tree search"--by chance 
your search tree evolved differently and had to visit more nodes.

If you want to know more about this behavior, have a look to Mike 
Trick's blog:

     http://mat.tepper.cmu.edu/blog/?p=1695

Of course, if you are consistently slower than the other version (also 
on other instances), then it may be the case that your version uses a 
worse internal tuning.

--Matteo--


Il 10/10/2012 17:07, Christos ha scritto:
> Ok i solved the errors.
>
> Now i debuged both the libs and the source code in release mode. 
> Solving Time is 1/3. Still the standalone executable that i downloaded 
> is 2.5 times faster...
>
> Is there any idea?
>
> On 10/10/2012 17:21, Iain Dunning wrote:
>> Compile everything in release mode - both the libraries and your 
>> project.
>>
>> - Iain
>>
>> On Wed, Oct 10, 2012 at 10:20 AM, Christos <chtsolak at gmail.com 
>> <mailto:chtsolak at gmail.com>> wrote:
>>
>>     Yes you both were right. I have compiled libraries in debug mode.
>>     Thank you.
>>
>>     Now i compiled them in release mode, but i get 177 same errors:
>>
>>     error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL':
>>     value '0' doesn't match value '2' in test.obj
>>
>>     What's this?
>>     (i am trying to compile project in debug mode)
>>
>>
>>
>>     On 10/10/2012 16:59, Iain Dunning wrote:
>>>     I wrote that guide.
>>>     Is it possible you are building your program in "Debug" mode? If
>>>     the lib files are large, it suggests they are being built with
>>>     debugging information...
>>>     Changing to "Release" mode could create speed ups of that order.
>>>
>>>     Cheers,
>>>     Iain
>>>
>>>     On Wed, Oct 10, 2012 at 4:39 AM, Christos <chtsolak at gmail.com
>>>     <mailto:chtsolak at gmail.com>> wrote:
>>>
>>>         In order to help you help me i compiled my code with this
>>>         method:https://projects.coin-or.org/Cbc/wiki/VSSetup
>>>
>>>         And as i can see lib files from repository are much smaller
>>>         then these created with the above method.
>>>
>>>         Is this matter?
>>>
>>>
>>>         On 9/10/2012 23:00, Christos wrote:
>>>>         Very useful info!
>>>>
>>>>         I downloaded Cbc-2.7.5-win64-intel11.1 and run cbc.exe in
>>>>         the bin folder.
>>>>         I used 2 methods-commands for solving, branchAndBound and
>>>>         solve.
>>>>
>>>>         They both solved it almost 10 times faster!!!
>>>>
>>>>         Now, to come to a solution, i need to know what's the
>>>>         differnece between solving with stand alone and simply by
>>>>         calling the solver via my code which was implemented in MS
>>>>         visual studio 2010..
>>>>
>>>>         If you can help me with this, i would have find the
>>>>         solution to my big problem!
>>>>         I am waiting impatiently for your words.
>>>>
>>>>         Thank you!
>>>>
>>>>         On 9/10/2012 22:26, David Ibarra Gómez wrote:
>>>>>         You can find the CBC binaries here:
>>>>>         https://projects.coin-or.org/CoinBinary or (here
>>>>>         http://www.coin-or.org/download/binary/Cbc/). You can test
>>>>>         different versions
>>>>>
>>>>>         From the shell you can call the executable binary. Then
>>>>>         you just:
>>>>>
>>>>>         1. Import MPS file by just typing "import mpsfilename.mps"
>>>>>         2. and then you can solve it just typing "branchAndCut"
>>>>>
>>>>>         Then compare the time to solve with the API.
>>>>>
>>>>>         A random google search to find a "recipe" could be (at the
>>>>>         end of page 6):
>>>>>         http://wpweb2.tepper.cmu.edu/fmargot/coin/proj5.pdf
>>>>>
>>>>>         Regards
>>>>>
>>>>>
>>>>>
>>>>>         ------------------------------------------------------------------------
>>>>>         Date: Tue, 9 Oct 2012 20:50:04 +0300
>>>>>         From: chtsolak at gmail.com <mailto:chtsolak at gmail.com>
>>>>>         To: dibarra21 at hotmail.com <mailto:dibarra21 at hotmail.com>
>>>>>         CC: cbc at list.coin-or.org <mailto:cbc at list.coin-or.org>
>>>>>         Subject: Re: [Cbc] solving time in C++ >> time in Gams
>>>>>
>>>>>         i have the latest version, 2.7.7....
>>>>>
>>>>>         I solve it by using the default cbc solver, (i am not
>>>>>         getting involved in the solver) with this way:
>>>>>
>>>>>         /solver1.loadProblem(numcols, numrows, start, index,
>>>>>         value, collb, colub, obj, rowlb, rowub);
>>>>>         CbcModel model(solver1);
>>>>>         CbcMain0(model);
>>>>>         const char * argv2[]={"DAS","-solve","-quit"}; //
>>>>>         CbcMain1(3,argv2,model); /
>>>>>
>>>>>         So, i do not think that it's ommiting the presolve step,
>>>>>         am i wrong?
>>>>>
>>>>>         Where can i find the latest version, and how can i load an
>>>>>         mps file?
>>>>>
>>>>>         Thank you
>>>>>
>>>>>         On 9/10/2012 20:42, David Ibarra Gómez wrote:
>>>>>
>>>>>             Hi,
>>>>>
>>>>>             there are several things that can cause this:
>>>>>
>>>>>               * different solvers version,
>>>>>               * solving is a complex task: presolve (cuting
>>>>>                 planes, heuristics, ...) and then branch and bound
>>>>>                 (cut). If you omit the first part or you do not do
>>>>>                 exactly the same steps result could be different.
>>>>>
>>>>>
>>>>>             Did you try to solve using CBC CLI (stand alone
>>>>>             executable) ?
>>>>>
>>>>>             Regards
>>>>>
>>>>>             ------------------------------------------------------------------------
>>>>>             Date: Tue, 9 Oct 2012 12:16:49 +0300
>>>>>             From: chtsolak at gmail.com <mailto:chtsolak at gmail.com>
>>>>>             To: cbc at list.coin-or.org <mailto:cbc at list.coin-or.org>
>>>>>             Subject: [Cbc] solving time in C++ >> time in Gams
>>>>>
>>>>>             Hi all again,
>>>>>
>>>>>             I have 1  question for you, if i solve it, i won't
>>>>>             bother you again :-P
>>>>>
>>>>>             I am using cbc in order to make an executable via MS
>>>>>             visual studio which solves a model.
>>>>>             In order to solve it, takes 60 mins
>>>>>
>>>>>             I have made the same problem with GAMS and solved it
>>>>>             in 30 secs, 120 times faster!!
>>>>>
>>>>>             Is it because of an error in modeling or due to the
>>>>>             different interface? (exe-GAMS)
>>>>>
>>>>>             Why is there this enormous difference?
>>>>>
>>>>>
>>>>>             Thank you in advance.//
>>>>>             //
>>>>>             //
>>>>>             /
>>>>>             /
>>>>>             _______________________________________________ Cbc
>>>>>             mailing list Cbc at list.coin-or.org
>>>>>             <mailto:Cbc at list.coin-or.org>
>>>>>             http://list.coin-or.org/mailman/listinfo/cbc
>>>>>
>>>>>
>>>>
>>>
>>>
>>>         _______________________________________________
>>>         Cbc mailing list
>>>         Cbc at list.coin-or.org <mailto:Cbc at list.coin-or.org>
>>>         http://list.coin-or.org/mailman/listinfo/cbc
>>>
>>>
>>>
>>>
>>>     -- 
>>>     *Iain Dunning*
>>>     PhD Student
>>>     <http://orc.scripts.mit.edu/people/student.php?name=idunning>  /
>>>     MIT Operations Research Center <http://web.mit.edu/orc/www/>
>>>     www.iaindunning.com <http://www.iaindunning.com/>
>>>
>>
>>
>>
>>
>> -- 
>> *Iain Dunning*
>> PhD Student 
>> <http://orc.scripts.mit.edu/people/student.php?name=idunning>  / MIT 
>> Operations Research Center <http://web.mit.edu/orc/www/>
>> www.iaindunning.com <http://www.iaindunning.com/>
>>
>
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc


-- 
Prof. Matteo Fischetti
DEI, University of Padova
via Gradenigo 6/A
I-35131 Padova (Italy)
e-mail: matteo.fischetti at unipd.it
web: www.dei.unipd.it/~fisch
reports: www.dei.unipd.it/~fisch/papers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20121010/f6c799d0/attachment-0001.html>


More information about the Cbc mailing list