最適化セミナーのご案内

7.2 外部CLAPACK(CBLAS)の使用方法

 Numerical Optimizer V13から外部CLAPACK(CBLAS)をNumerical Optimizerライブラリへリンクすることができるようになりました.これにより大規模な線形計画問題において内点法を用いる場合の求解速度が速くなる場合があります.例えば、Intel社のMKLを使用することで,CPUがCore2 Quad 3GHz(Q9650)で求解時間が1/3となった問題がありました注1

 

 本節では,外部CLAPACK(CBLAS)をNumerical Optimizerライブラリへリンクする方法について説明をします.基本的な設定方法はコンパイラのバージョンが異なっても同じであるため,ここではMicrosoft Visual Studio 2010を例にします.

 

 まずは,「7.1 Microsoft Visual Studioプロジェクトの設定」を行い,正しくソリューションがビルドできることを確認してください.

 

 次に,Numerical Optimizerのライブラリを外部CLAPACKとリンクするためのものに変更します.具体的には,プロジェクト→プロパティ→構成プロパティから,「構成プロパティ」→「リンカ」→「入力」と選択し,ウインドウ内にある「追加の依存ファイル」の

libnuopt_MT_m.lib;psapi.lib

を次のように変更します.

libnuopt_MT_nolapack.lib;psapi.lib

 この後,ソリューションのビルドを行うと,以下のようなエラーメッセージが出力され正しくビルドが完了しません.これは外部CLAPACK(CBLAS)の関数のリンクに失敗しているためです.そのため,以下で外部CLAPACK(CBLAS)ライブラリの設定を行います.

4>リンクしています...
3>libnuopt_MT_nolapack.lib(Vt.obj) : error LNK2001: 外部シンボル"_idamax_"は未解決です。
3>libnuopt_MT_nolapack.lib(rhoupdsdp.obj) : error LNK2001: 外部シンボル"_idamax_"は未解決です。
3>libnuopt_MT_nolapack.lib(dgefa.obj) : error LNK2001: 外部シンボル"_idamax_"は未解決です。
...

 先の「追加の依存ファイル」に外部CLAPACK(CBLAS)のライブラリを入力してください.ライブラリ名は使用する外部CLAPACK(CBLAS)により決まりますので,必要ならCLAPACK(CBLAS)のマニュアル等をご覧ください.次に,この(これらの)ライブラリがあるフォルダを指定します.「構成プロパティ」→「リンカ」→「全般」と選択し,ウインドウ内にある「追加のライブラリディレクトリ」の右側にあるボタンをクリックしてください.

 ボタンをクリックすると次のようなダイアログが表示されます.

 このダイアログから,先に指定した外部CLAPACK(CBLAS)のあるフォルダを追加してください.ライブラリが複数ある場合は複数のフォルダを指定する必要があるかもしれません.適切なフォルダに関しては外部CLAPACK(CBLAS)のマニュアル等をご覧ください.

 

 以上で外部CLAPACK(CBLAS)の設定になります.ご不明な点がございましたら

nuopt-support@msi.co.jp

までお問い合わせください.

注1)これは結果の一例であり,全ての問題で必ず同程度速度が速くなることを保証できるわけではありません.しかしながら,MKLの場合はスレッド化されるため,Many Coreの環境では多くの問題でより高パフォーマンスとなることが期待できます.


 

 

上に戻る