Bug 226263 - [NEW PORT] math/cbc: Coin-or branch and cut is an open-source mixed integer programming solver
Summary: [NEW PORT] math/cbc: Coin-or branch and cut is an open-source mixed integer p...
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2018-02-28 15:30 UTC by Pedro F. Giffuni
Modified: 2018-04-17 15:04 UTC (History)
0 users

See Also:


Attachments
New port in svn diff format (17.67 KB, patch)
2018-02-28 15:30 UTC, Pedro F. Giffuni
no flags Details | Diff
New port in svn diff format (17.62 KB, patch)
2018-03-01 15:14 UTC, Pedro F. Giffuni
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pedro F. Giffuni freebsd_committer 2018-02-28 15:30:33 UTC
Created attachment 191080 [details]
New port in svn diff format

This is a complete mixed integer solver but also includes solver based on Clp,  Cgl and other solvers.

It is mean to superceed our math/clp port, and like clp has the Fortran option enabled by default. It is in conflict with coinmp.

Ideally we should be able to reuse this port to package other Coin OR projects without bringing parts of CoinMP that we don't use.
Comment 1 Pedro F. Giffuni freebsd_committer 2018-03-01 15:14:07 UTC
Created attachment 191105 [details]
New port in svn diff format

Fix pkg-plist oops.
Comment 2 Pedro F. Giffuni freebsd_committer 2018-04-16 14:18:10 UTC
Can you please merge the improvements in this port to the port that was commmited?
Comment 3 Yuri Victorovich freebsd_committer 2018-04-16 16:39:31 UTC
(In reply to Pedro F. Giffuni from comment #2)

Ah, sorry, I didn't notice this bug#.
I will merge tonight.

Yuri
Comment 4 Yuri Victorovich freebsd_committer 2018-04-17 07:14:29 UTC
I looked into cbc, and there are several issues:
* It seems to depend on some older version of glpk. For example, it needs lpx_simplex() when it was renamed to glp_simplex() long time ago.
* It sometimes also depends on libcoinmumps.so:math/ipopt. Need to figure out the condition/option that triggers this.
* There seem to be a lot of other options that trigger linkage to some other libraries. Need to understand what these are, possibly create ports for them.

The minimal version that is committed is fine as it is. But the improved one needs some more time in order to sort out these problems.


Yuri
Comment 5 Pedro F. Giffuni freebsd_committer 2018-04-17 15:04:03 UTC
(In reply to Yuri Victorovich from comment #4)

There are some things to take into account:

- At some point COIN-OR was recommending building with -ffast-math and -fomit-frame-pointer (this last for debugging). That's why we set the cflag values as they are in Clp.
- Cbc includes Clp, and coinmp includes both: all of them should be in conflict.
- At some point upstream was recommending building with -ffast-math and -fomit-frame-pointer (this last for debugging). That's why we set the cflag values as they are in Clp.
- Currently the only reason for having Clp is that we compile the FORTRAN option by default: this makes the solvers use BLAS which makes things faster but for coinmp that would be problematic (OpenOffice).

Future work:
- I believe we should remove Clp, we should have fortran as an option (or even a flavor) in Cbc and see if we can use Cbc for coinmp ( -with-coin-instdir may help but it doesn't do the trick).
- COIN-OR's Symphony would benefit of such approach.