サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

【Mac】Cbcソルバー 並列処理

Cbcとはオープンソースの混合整数線形計画(mixed integer liner program)ソルバーです。混合整数線形計画問題とは線形計画問題の中に連続変数と、整数変数が混合している問題のことになります。

そのCbcソルバーで並列処理を行えるようにするには、下記のようにインストールの際にオプションを指定する必要があります。

インストール方法

homebrew

brew tap coin-or-tools/coinor
brew install cbc --with-parallel 

ソースコード

1.ソースコード

svn checkout https://projects.coin-or.org/svn/Cbc/releases/2.9.8 Cbc-2.9.8

の実行でダウンロード (2.9.8はCbcのバージョンです。最新版のバージョンは GitHub - coin-or/Cbc: COIN-OR Branch-and-Cut solver でチェックしてください)

2.オプション付きでconfigureする

cd Cbc-2.9.8
./configure --enable-cbc-parallel

そのあとは

make; make install

してPATHを通せばok

実行方法

cbc -sec [全スレッド合計の秒数] -threads [スレッド数] -import [LPファイル] -solve -solution [出力ファイル] 

-sec : 時間制限(*実際の時間ではない。時間制限は各スレッドが使っている時間の合計時間に適用される)
-threads : 用いるスレッド数
-import : LPファイルやMPSファイルの読み込み
-solution : 最適解(または時間切れの場合 暫定最適解)の出力先