[CoinMp] CoinMP.dll errors

Larry A. Taylor ltaylor at seas.ucla.edu
Mon Feb 18 19:39:46 EST 2008


See Ticket #1 for this project:
https://projects.coin-or.org/CoinMP/ticket/1

LAT

At 01:33 AM 2/18/2008, Rod Frowd wrote:
>I found that the CoinMP.dll did not work when built from source, though
>the downloaded binary dll did. It was giving primal infeasible 
>errors, when the problem was feasible,
>
>Upon looking  at the source code I found the problem below, some of the
>real tolerances were being set to zero as the CoinGetIntOption was being
>called instead of the CoinGetRealOption? The built from source dll works
>after this change.
>
>Index: CoinMP.cpp
>===================================================================
>--- CoinMP.cpp    (revision 53)
>+++ CoinMP.cpp    (working copy)
>@@ -646,10 +646,10 @@
>
>     pCoin->clp->setMaximumIterations(CoinGetIntOption(hProb,
>COIN_INT_MAXITER));
>
>-    pCoin->clp->setPrimalObjectiveLimit(CoinGetIntOption(hProb,
>COIN_REAL_PRIMALOBJLIM));
>-    pCoin->clp->setDualObjectiveLimit(CoinGetIntOption(hProb,
>COIN_REAL_DUALOBJLIM));
>-    pCoin->clp->setPrimalTolerance(CoinGetIntOption(hProb,
>COIN_REAL_PRIMALOBJTOL));
>-    pCoin->clp->setDualTolerance(CoinGetIntOption(hProb,
>COIN_REAL_DUALOBJTOL));
>+    pCoin->clp->setPrimalObjectiveLimit(CoinGetRealOption(hProb,
>COIN_REAL_PRIMALOBJLIM));
>+    pCoin->clp->setDualObjectiveLimit(CoinGetRealOption(hProb,
>COIN_REAL_DUALOBJLIM));
>+    pCoin->clp->setPrimalTolerance(CoinGetRealOption(hProb,
>COIN_REAL_PRIMALOBJTOL));
>+    pCoin->clp->setDualTolerance(CoinGetRealOption(hProb,
>COIN_REAL_DUALOBJTOL));
>
>     /* check if it has been changed, leave alone otherwise */
>    ClpPrimalColumnSteepest primalSteepest(CoinGetIntOption(hProb,
>COIN_INT_PRIMALPIVOTALG));
>@@ -659,7 +659,7 @@
>    pCoin->clp->setDualRowPivotAlgorithm(dualSteepest);
>
>     if (CoinGetIntOption(hProb, COIN_INT_CRASHIND)) {
>-        pCoin->clp->crash(CoinGetIntOption(hProb, COIN_REAL_CRASHGAP),
>+        pCoin->clp->crash(CoinGetRealOption(hProb, COIN_REAL_CRASHGAP),
>                                 CoinGetIntOption(hProb,
>COIN_INT_CRASHPIVOT));
>     }
>     switch (CoinGetIntOption(hProb,COIN_INT_SOLVEMETHOD)) {
>
>
>
>Another issue I found is that the default options were not set the same
>as in the CLP executable, making CoinMP.dll a lot slower. I was able to
>speed it up by a factor of 3 with the following parameter changes:
>
>COIN_INT_SCALING  set to 5 was 3
>COIN_INT_PERTURBATION    set to 50 was 100
>COIN_INT_PRIMALPIVOTALG  set to 4 was 1
>COIN_INT_DUALPIVOTALG    set to 3 was 1
>
>
>Rod Frowd
>
>
>
>
>_______________________________________________
>CoinMp mailing list
>CoinMp at list.coin-or.org
>http://list.coin-or.org/mailman/listinfo/coinmp



More information about the CoinMp mailing list