• 締切済み

Math Kernel (マスカーネル) Library について

Borland C++ Builderで数値解析コードを作成しているのですが、計算速度を上げるために演算用ライブラリを使おうと考えています。Intel製のマスカーネルライブラリを使いたいのですが、これまで慣れ親しんで使ってきたBorland C++ Builderからは利用できずに困っています。利用できるか否か、また可能な場合は利用手順をご教示頂けると助かります。

みんなの回答

  • tea_sheep
  • ベストアンサー率53% (8/15)
回答No.3

VCを持っているのであれば、MKL関数を呼び出すだけのラッパ関数を 持つDLLをVCで作成して、それをBuilderのプログラムから呼び出す というのはどうでしょうか。 ただ、関数呼び出しのオーバーヘッドが多少あるので、時間当たりの 呼び出し回数があまりに多いような計算なら、数値計算部分だけでも VC側のDLLに入れてしまうのがいいかもしれませんが。 MKLを直接Builderから使用する方法を解説しているWebページもある ようですが、サポート外なので注意が必要だとは書かれていますね。

参考URL:
http://bme.t.u-tokyo.ac.jp/members/manabu/MKL_BCC/mkl_BCC.html
koukadoor
質問者

お礼

まさに探していた情報です。本当にありがとうございます。早速試してみようと考えています。 BCBの将来性は不安ですし、計算速度の点ではVisual C++に分があるように思われますが、やはり使いなれた開発環境は捨てがたいのでとりあえずはC++builderで粘りたいと思います。どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★『マスカーネル』ではありませんが紹介します。 ・紹介する『技術計算用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プログラム』がどの程度の処理速度かは、分かりませんが  試してみる価値はあると思います。 ・以上。短いですが紹介を終わりにします。

参考URL:
http://www5.airnet.ne.jp/tomy/cpro/csource.htm
koukadoor
質問者

お礼

ありがとうございます。これまで自前のLU分解と双共役勾配法のソルバーを状況に応じて使い分けてきました。しかし同程度の規模の連立方程式の求解に、FortranでCXMLあるいはMKライブラリを用いる解析コードと比較してかなりの時間がかかっていたため、MKライブラリの導入を検討している次第です。紹介して頂いたコードを拝見しましたが、当方のものとそれほど変わらないように思います。大変参考になりましたが、やはりVisual C++に乗り換えてでもMKライブラリを導入したいと考えています。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

IntelのMKLページによればBorlandのコンパイラはサポートしてないから、 たとえ使えたにしてもちゃんと動く保証はどこにもありませんねぇ。

参考URL:
http://www.intel.com/cd/software/products/ijkk/jpn/perflib/mkl/282792.htm
koukadoor
質問者

お礼

ご回答ありがとうございます。やはり難しいのでしょうか。身近にFortran使用者が多く、MKライブラリーは(未知数1万を超えるような連立方程式の求解が)速いという話を何度か聞きましたので、ものは試しで使ってみようと考えた次第です。どうしても利用したければコンパイラーもIntel製のものあたりに乗り換えたほうがいいのかもしれませんね。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 多倍長演算ライブラリ

    現在C言語で実装してある多倍長演算ライブラリを探しています。 そして、1変数20byteで計算できるものを探しています。 よろしくお願いします。

  • フリーの数値計算ライブラリ

    皆さん,こんにちは。 世の中には,MKL,IMSL 等,数値計算ライブラリがいろいろあるようです。でも,有料なので個人で使うにはちょっと敷居が高いです。そこで,フリーの数値計算ライブラリを探しています。 線形代数ライブラリとしては,MTL/ITL を見つけました。その他,特殊関数,非線形方程式等まで含めたものは,まだ見つけられていません。liboctave は Windows で使うのは面倒臭そうなので,却下したいです。また,言語は C++ が希望ですが,Fortran 以外なら何でも構いません。Excel でも,XNumber や MATRIX なんていうのがあるみたいですね。 ちなみに,僕自身はこのようなライブラリを使ったことがないのですが,今後はこういったものをどんどん利用して作業を楽にしたいと思っています。 皆さんが使われている,お勧めの数値計算ライブラリを教えて下さい。よろしくお願いします。

  • 演算速度が Xeon E5405(2GHz) と同等の Core2 を教えて頂きたいです。

    演算速度が Xeon E5405(2GHz)と同等のCore2を教えて頂きたいです。 使用目的は、流体の数値計算です。 言語はFortran、コンパイラはIntel Fortran Compilerです。 もちろん演算速度には、コードそのものや並列化の仕方、メモリ等、 他の要因もあるとは思いますが、CPUとしての性能で比較するならどうか、 ということをご教授頂きたいです。 宜しくお願い致します。

  • XML(Atom)読み込みライブラリを探しています

     C/C++ で利用する,XML(できれば Atom)を読み込んで解析できるライブラリを探しています。  要件としては,  - Windows ベースのプログラムで利用したいが,できれば .NET Framework や MFC に依存しないもの(C/C++ ネイティブ)。  - Atom 形式が適切に読めるものが最高だが,一般の XML が解析できるものでもじゅうぶん。  - 解析(パース)できて適切に解析木にアクセスできればじゅうぶん(複雑な書き換えなどは行わない)。 です。  今のところ,マイクロソフトの「XmlLite」   http://msdn.microsoft.com/msdnmag/issues/07/04/Xml/default.aspx?loc=jp を探し当てましたが,ほかにより適切なものがあるか,お尋ねする次第です。  特に,実際に C・C++ で開発などを行っている方で,XML を扱うプログラムを書かれている方のご意見を頂戴できればと思います。このような方法が定石であるとか,開発のヒントを合わせてご教示くだされば幸いです。

  • 圧縮ライブラリってないんですか

    .netframeworkには圧縮ライブラリってないんですか? ないならどこかにC#のソースコードでありませんかね。 ちなみに、ファイルを圧縮したいわけではないので、dllを利用する方法が使えないのです。

  • BCBでVC++のDLLを利用するために

    C++Builder5で、VC++で作ったDLLを利用する必要に駆られてしまいました。 提供されているのはDLL本体とヘッダの2点で、BCBからリンクするために、implibを使ってdllからlibの作成をし、プロジェクトに加え、ヘッダをインクルードしました。続けて試しにコードを書いたところ、 '外部シンボル_initialize_libraryが未解決' との表示。(initialize_libraryとはDLL内にある関数です。) 調べてみたところ、 1.呼び出し規約は標準で __stdcall 2.VC++ では、_ がシンボル名の頭に付く 3.Builder ではつかない これで食い違いが生じているんだと思うのですが、更に調べると、モジュール定義ファイルにて再定義をすれば良いとの結論になりました。 BorlandのFAQも見たのですが、書式が理解できなくて・・・そこで質問させて頂きたいのですが、単純にproject名.defを作って、 >IMPORTS >initialize_library=_initialize_library とやってプロジェクトに加えれば良いのでしょうか? ソース本体にextern "C" というのも必要なようですが、こちらの記述も教えて頂けたら嬉しいです。

  • WinodwsとIOSで動くライブラリ

    Windowsで動作しているライブラリ(Lib)が、IOSで動くように、移植作業を行っています。 ★開発環境★ OS:Winodws7 コンパイラ:Borland C++ 5.5.1 言語:C++ 手始めに、Windos依存部分(MFC/WinodosAPI)をC/C++標準ライブラリに置き換えようとしてます。 MFCは何とかいけそうですが、WinodwsAPIの置き換えに難航しています。 置き換え対象のライブラリは、文字コード変換、ファイル操作、画像処理、ソケット通信など、標準的なAPIをまとめた内容なのですが、特にファイル操作、文字コード変換、画像処理はWindowsAPIに依存しているため、IOSにそのまま移植できるものがなさそうです。 そこでWinodws、IOSの両方のOSで動くようなマルチOSライブラリがあれば、教えて頂けないでしょうか?(特にファイル操作関係) 同じような状況に遭われた方、何か心当たりのある方のアドバイスをよろしくお願いします。

  • Pythonで構文解析する高速なライブラリを探しています

    Pythonで、数式(Pythonの式ではない。二項演算・関数呼び出し・タプルなどがある)を解析し、構文木を作ろうとしています。 いままでSimpleParse・PLYを試しましたが処理が遅く、もっと速い方法を探しています。 SimpleParse・PLY・spark以外の構文解析ライブラリをご存知のかたは教えてください。 また、SimpleParseやPLYで高速に解析する方法があれば教えてください。 なお、yaccを使ってCで実装するのは最後の手段と言うことで

  • 数値物理学のプログラミングに関する掲示板

    計算物理が主流の研究室の院生をしていますが、論文を読んでもなかなかコードが作れません。computational Physicsの雑誌があってソースが載っているようですが、田舎なので手に入りません。しかし、どこかで親切な御仁がソース公開してくれていたり、質問をすると教えてくれるサイトがあると聞いたことがあります。国内外で数値計算、特に、うめこみとか、ウエーブレット解析とか、あとは、カオスにかんするりあぷのふ指数の計算とか、です。なにかこういう分野で、わりに活発な場所がありましたらお教えください。ちなみに、高いライブラリは買うお金がありません。。。 ではよろしく、ご教示くださいませ。

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。