Bug 226263

Summary: [NEW PORT] math/cbc: Coin-or branch and cut is an open-source mixed integer programming solver
Product: Ports & Packages Reporter: Pedro F. Giffuni <pfg>
Component: Individual Port(s)Assignee: Yuri Victorovich <yuri>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: diizzy
Priority: --- Keywords: patch
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220232
Attachments:
Description Flags
New port in svn diff format
none
New port in svn diff format none

Description Pedro F. Giffuni freebsd_committer freebsd_triage 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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 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.
Comment 6 Daniel Engberg freebsd_committer freebsd_triage 2021-10-04 23:16:17 UTC
Ping, status update on this one?
Comment 7 Yuri Victorovich freebsd_committer freebsd_triage 2021-10-04 23:48:53 UTC
COIN-OR Cbc is long in the ports tree: math/cbc.