0

この質問は、実際には GSL と MATLAB の間のトレードオフに関するものです。まず、いくつかの変数を定義しましょう。

 - Target OS: Windows XP 
 - Target IDE: MS VS 2005/2008 
 - Software: Commercial 
 - Development Language: C++

さらに、これら 2 つのアプローチの使いやすさ、ライセンス、パフォーマンス基準に関する完全な回答が見つからなかったため、この質問をしています。

GNU GSL と MATLAB を使用して、いくつかの数値演算 (FFT など) を実装する必要があります。MS VS IDE を使用する Windows OS では、GSL (cygwin を使用) と MATLAB の両方を使用できることを知っています。

しかし、次の問題があります。

  • アプリケーションで MATLAB ライブラリを使用する場合のライセンス(GSL も同様)
  • MATLAB C++ コードと GNU GSL のパフォーマンスの違い (特に FFT を計算する場合)
  • 使いやすさ(例外、エラー処理、テスト容易性)

実装の決定への道筋を照らしていただければ幸いです。

また、よろしくお願いします

4

2 に答える 2

2

FFT などを行っているだけなら、Intel の MKLAMD の ACML [PDF] について考えたことはありますか? どちらもFFTを持っています。FFTルーチンを取得するためだけにMatlabにお金を払うのは、ばかげています。優れた高性能の C++/Fortran ライブラリを使用するだけです。

とはいえ、この紳士は、Visual Studio でコンパイルされる GSL のパッチを適用したバージョンを維持しています。

GSL を使用する場合は、GPL の下でライセンスを取得する必要があります

GSL を使用するアプリケーションを配布したい場合、どのライセンスを使用する必要がありますか? GNU 一般公衆利用許諾契約書 (GPL)。商用ユーザーの結論:

GSL can be used internally ("in-house") without restriction, but only redistributed in other software that is under the GNU GPL.

Intel の MKL には、おそらくあなたが探しているライセンス契約があります。

自分のアプリケーションでインテル マス カーネル ライブラリを再配布できますか? はい。インテル® MKL を購入すると、アプリケーションと共にインテル® MKL の計算部分を再配布する権利が与えられます。インテル® MKL の評価版には、再配布の権利は含まれていません。再配布可能なファイルのリストは、製品ライセンス付きインテル® MKL ディストリビューションに含まれる redist.txt で提供されます。

ACML のライセンスについてはあまり確信が持てませんが、配布にはお金がかかると思います。

于 2011-08-30T06:20:08.443 に答える
1
  1. GSL を使用するために Cygwin は必要ありません。ビルドするためだけです。これを行うには MinGW GCC を使用し、Cygwin または MSYS を POSIX シェル環境として使用して、「configure」を使用してビルドする必要があります。または、ビルド済みのバージョンを探してみてください。gendef や MSVC の lib.exe などのツールを使用して、作成した DLL のインポート ライブラリを作成できるはずです。これにより、DLL を Visual Studio コンパイラにリンクできます。

  2. GSL は FFT を実行できますが、FFTW の方が優れています。どちらも GPL であるため (私の間違いでなければ)、アプリが GPL と互換性のあるライセンスを取得している必要があります。

  3. Matlab は (表面的には) C よりも簡単です。しかし、正しく使用すれば、GSL と特に FFTW は生のパフォーマンスの点で Matlab に勝ると確信しています。

于 2011-08-29T09:57:36.933 に答える