GALAHAD ist eine Bibliothek moderner Fortran-Pakete zur nichtlinearen Optimierung mit C-, Python-, Julia- und MATLAB-Schnittstellen. Es enthält Pakete für allgemeine eingeschränkte und uneingeschränkte Optimierung, lineare und quadratische Programmierung, nichtlineare Kleinste-Quadrate-Anpassung und globale Optimierung sowie Pakete zur Lösung einer Vielzahl grundlegender Optimierungsteilprobleme.
Weitere Informationen zu den Paketen in GALAHAD finden Sie unter https://www.galahad.rl.ac.uk.
Alle wichtigen GALAHAD-Pakete sind in Fortran, C, Python und Julia dokumentiert:
Für MATLAB-Funktionen werden Hilfedateien bereitgestellt.
Wir stellen eine vorkompilierte GALAHAD-Bibliothek auf der Registerkarte „Releases“ für Linux, macOS (Intel & Silicon) und Windows bereit.
GALAHAD kann mithilfe des Meson-Build-Systems aus dem Quellcode installiert werden (alle folgenden Befehle müssen vom oberen Rand des Quellbaums aus ausgeführt werden):
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
Ausführlichere Meson-Optionen ( -Doption=value
), einschließlich der Angabe von Pfaden zu verschiedenen Bibliotheken und Paketen, finden Sie unter meson_options.txt und README.meson. Im Folgenden geben wir einige Beispiele für die wichtigsten Meson-Optionen.
GALAHAD unterstützt eine große Anzahl optionaler Softwarepakete für erweiterte Funktionalität, die wichtigsten davon sind:
Standardmäßig erstellt GALAHAD mit OpenBLAS, wenn es es finden kann (andernfalls müssen Sie möglicherweise die OpenBLAS-Pfade über die Optionen libblas_path
und liblapack_path
an meson setup
übergeben). Möglicherweise möchten Sie auch eine herstellerspezifische BLAS/LAPACK-Implementierung verwenden, beispielsweise eine der folgenden:
Anweisungen dazu, wie Sie Meson mitteilen, wo diese optionalen Abhängigkeiten zu finden sind, finden Sie in README.meson.
Standardmäßig erstellt GALAHAD den SSIDS-Linearlöser. Andere alternative Linearlöser sind:
Anweisungen dazu, wie Sie Meson mitteilen, wo diese optionalen Abhängigkeiten zu finden sind, finden Sie in README.meson.
GALAHAD kann Optimierungstestprobleme aus der CUTest-Testsammlung verwenden. Um beispielsweise GALAHAD mit CUTest mit doppelter Genauigkeit zu verknüpfen, das mit gfortran auf einem 64-Bit-Linux-Computer kompiliert wurde:
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
Man kann GALAHAD auf ähnliche Weise mit CUTEst mit einfacher Genauigkeit verknüpfen, siehe meson_options.txt.
So installieren Sie die C-Schnittstelle mithilfe des Meson-Build-Systems:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
So installieren Sie die Python-Schnittstelle mithilfe des Meson-Build-Systems:
meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python
Bitte beachten Sie GALAHAD.jl und die zugehörige Dokumentation.
Bitte lesen Sie README.matlab und die dort bereitgestellten Anweisungen.
GALAHAD kann auch über den Befehl „make“ als Teil des Optrove-Optimierungs-Ökosystems installiert werden, das auch CUTest, SIFDecode und ARCHDefs umfasst. Dies hat den Vorteil, dass Skripte zum Ausführen von CUTest-Beispielen direkt aus GALAHAD bereitgestellt werden und Aufrufe von Matlab möglich sind, allerdings sind die Erstellungszeiten erheblich länger.
Um diese Variante zu nutzen, befolgen Sie die Anweisungen im GALAHAD-Wiki.