- 締切済み
Math Kernel (マスカーネル) Library について
Borland C++ Builderで数値解析コードを作成しているのですが、計算速度を上げるために演算用ライブラリを使おうと考えています。Intel製のマスカーネルライブラリを使いたいのですが、これまで慣れ親しんで使ってきたBorland C++ Builderからは利用できずに困っています。利用できるか否か、また可能な場合は利用手順をご教示頂けると助かります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tea_sheep
- ベストアンサー率53% (8/15)
VCを持っているのであれば、MKL関数を呼び出すだけのラッパ関数を 持つDLLをVCで作成して、それをBuilderのプログラムから呼び出す というのはどうでしょうか。 ただ、関数呼び出しのオーバーヘッドが多少あるので、時間当たりの 呼び出し回数があまりに多いような計算なら、数値計算部分だけでも VC側のDLLに入れてしまうのがいいかもしれませんが。 MKLを直接Builderから使用する方法を解説しているWebページもある ようですが、サポート外なので注意が必要だとは書かれていますね。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★『マスカーネル』ではありませんが紹介します。 ・紹介する『技術計算用Cプログラム ソース』ならば『Borland C++ Builder』でも 動作すると思います。→多少手直しする必要があります。 ちょっとだけ『バグ』らしきものを発見しましたので。 目次: (1)科学技術計算( Science Subroutines ) 数値計算、各種関数、統計、検定 他。 (2)ソート ( Sorting Subroutines ) 各種ソーティング(=整列)。 (3)乱数( Random Number Subroutines ) 各種疑似乱数、ランダム・データ生成 他。 (4)順列・組合せ( Permutations & Combinations ) 順列生成、組合せ生成。 (5)文字列照合・探索( String Matching & Binary Search ) 文字列照合、バイナリ探索。 (6)多倍長演算(整数)( Multiple-Precision Integer Arithmetic ) 多倍長整数演算ライブラリ。 (7)多倍長演算(浮動小数点)( Multiple-Precision Floating-point Arithmetic ) 多倍長浮動小数点演算ライブラリ。 (8)その他( Etc. ) 各種プログラム。 最後に: ・上記で紹介した『技術計算用Cプログラム』がどの程度の処理速度かは、分かりませんが 試してみる価値はあると思います。 ・以上。短いですが紹介を終わりにします。
お礼
ありがとうございます。これまで自前のLU分解と双共役勾配法のソルバーを状況に応じて使い分けてきました。しかし同程度の規模の連立方程式の求解に、FortranでCXMLあるいはMKライブラリを用いる解析コードと比較してかなりの時間がかかっていたため、MKライブラリの導入を検討している次第です。紹介して頂いたコードを拝見しましたが、当方のものとそれほど変わらないように思います。大変参考になりましたが、やはりVisual C++に乗り換えてでもMKライブラリを導入したいと考えています。
- episteme_at_goo
- ベストアンサー率25% (9/36)
IntelのMKLページによればBorlandのコンパイラはサポートしてないから、 たとえ使えたにしてもちゃんと動く保証はどこにもありませんねぇ。
お礼
ご回答ありがとうございます。やはり難しいのでしょうか。身近にFortran使用者が多く、MKライブラリーは(未知数1万を超えるような連立方程式の求解が)速いという話を何度か聞きましたので、ものは試しで使ってみようと考えた次第です。どうしても利用したければコンパイラーもIntel製のものあたりに乗り換えたほうがいいのかもしれませんね。。。
お礼
まさに探していた情報です。本当にありがとうございます。早速試してみようと考えています。 BCBの将来性は不安ですし、計算速度の点ではVisual C++に分があるように思われますが、やはり使いなれた開発環境は捨てがたいのでとりあえずはC++builderで粘りたいと思います。どうもありがとうございました。