GALAHAD は、C、Python、Julia、MATLAB インターフェイスを使用した非線形最適化のための最新の Fortran パッケージのライブラリです。これには、一般的な制約付きおよび制約なしの最適化、線形および二次計画法、非線形最小二乗フィッティング、およびグローバル最適化のためのパッケージに加え、さまざまな基本的な最適化サブ問題を解決するためのパッケージが含まれています。
GALAHAD のパッケージの詳細については、https://www.galahad.rl.ac.uk を参照してください。
すべての主要な GALAHAD パッケージは、Fortran、C、Python、および Julia で文書化されています。
MATLAB 関数のヘルプ ファイルが提供されています。
Linux、macOS (インテルおよびシリコン)、および Windows のリリース タブで、プリコンパイルされた GALAHAD ライブラリを提供します。
GALAHAD は、Meson ビルド システムを使用してソースからインストールできます (以下のすべてのコマンドはソース ツリーの最上部から実行されます)。
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
さまざまなライブラリやパッケージへのパスを指定する方法を含む、より包括的な Meson オプション ( -Doption=value
) については、 meson_options.txt および README.meson を参照してください。最も重要な中間子のオプションについて、以下にいくつかの例を示します。
GALAHAD は、機能を強化するために多数のオプション ソフトウェア パッケージをサポートしています。その中で最も重要なものは次のとおりです。
デフォルトでは、GALAHAD は、OpenBLAS を見つけることができれば、それを使用してビルドします (そうでない場合は、 libblas_path
およびliblapack_path
オプションを介して OpenBLAS パスをmeson setup
に渡す必要がある場合があります)。次のいずれかのようなベンダー固有の BLAS/LAPACK 実装を使用することもできます。
これらのオプションの依存関係の場所を Meson に指示する方法については、README.meson を参照してください。
デフォルトでは、GALAHAD は SSIDS 線形ソルバーを構築します。他の代替線形ソルバーは次のとおりです。
これらのオプションの依存関係の場所を Meson に指示する方法については、README.meson を参照してください。
GALAHAD は、CUTEst テスト コレクションの最適化テスト問題を使用できます。たとえば、64 ビット Linux マシン上で gfortran でコンパイルされた倍精度 CUTEst を使用して GALAHAD をリンクするには、次のようにします。
meson setup builddir -Dlibcutest_double_path=/path/to/CUTEst/objects/pc64.lnx.gfo/double/ -Dlibcutest_double_modules=/path/to/CUTEst/modules/pc64.lnx.gfo/double/ -Dsingle=false
meson compile -C builddir
meson install -C builddir
同様に、GALAHAD を単精度 CUTEst にリンクできます。meson_options.txt を参照してください。
Meson ビルド システムを使用して C インターフェイスをインストールするには:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
Meson ビルド システムを使用して Python インターフェイスをインストールするには:
meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python
GALAHAD.jl および関連ドキュメントを参照してください。
README.matlab とそこに記載されている手順を参照してください。
GALAHAD は、CUTEst、SIFDecode、ARCHDefs も含む Optrove 最適化エコシステムの一部として、「make」コマンドを使用してインストールすることもできます。これには、GALAHAD から CUTEst サンプルを直接実行するスクリプトが提供され、Matlab からの呼び出しが可能になるという利点がありますが、ビルド時間が大幅に長くなります。
この亜種を使用するには、GALAHAD wiki の指示に従ってください。