GALAHAD est une bibliothèque de packages Fortran modernes pour l'optimisation non linéaire avec les interfaces C, Python, Julia et MATLAB. Il contient des packages pour l'optimisation générale avec et sans contrainte, la programmation linéaire et quadratique, l'ajustement des moindres carrés non linéaires et l'optimisation globale, ainsi que ceux permettant de résoudre une grande variété de sous-problèmes d'optimisation de base.
Plus d'informations sur les packages de GALAHAD peuvent être trouvées sur https://www.galahad.rl.ac.uk.
Tous les principaux packages GALAHAD sont documentés en Fortran, C, Python et Julia :
Des fichiers d'aide sont fournis pour les fonctions MATLAB.
Nous fournissons une bibliothèque GALAHAD précompilée dans l'onglet versions pour Linux, macOS (Intel & Silicon) et Windows.
GALAHAD peut être installé à partir des sources en utilisant le système de build Meson (toutes les commandes ci-dessous doivent être exécutées depuis le haut de l'arborescence des sources) :
meson setup builddir -Dtests=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir
Pour des options Meson plus complètes ( -Doption=value
), y compris comment spécifier les chemins vers diverses bibliothèques et packages, veuillez consulter meson_options.txt et README.meson. Nous donnons ci-dessous quelques exemples pour les options Meson les plus importantes.
GALAHAD prend en charge un grand nombre de progiciels optionnels pour des fonctionnalités améliorées, les plus importants d'entre eux sont :
Par défaut, GALAHAD construira avec OpenBLAS s'il peut le localiser (sinon, vous devrez peut-être transmettre les chemins OpenBLAS via les options libblas_path
et liblapack_path
à meson setup
). Vous souhaiterez peut-être également utiliser une implémentation BLAS/LAPACK spécifique au fournisseur, telle que l'une des suivantes :
Veuillez consulter README.meson pour savoir comment indiquer à Meson où trouver ces dépendances facultatives.
Par défaut, GALAHAD construira le solveur linéaire SSIDS, d'autres solveurs linéaires alternatifs sont :
Veuillez consulter README.meson pour obtenir des instructions sur la façon d'indiquer à Meson où trouver ces dépendances facultatives.
GALAHAD peut utiliser les problèmes de tests d'optimisation de la collection de tests CUTEst. Par exemple, pour lier GALAHAD avec CUTEst double précision compilé avec gfortran sur une machine Linux 64 bits :
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
On peut de la même manière lier GALAHAD avec CUTEst en simple précision, veuillez consulter meson_options.txt.
Pour installer l'interface C à l'aide du système de build Meson :
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
Pour installer l'interface Python à l'aide du système de build Meson :
meson setup builddir -Dpythoniface=true -Dpython.install_env=auto
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=Python
Veuillez consulter GALAHAD.jl et la documentation associée.
Veuillez consulter README.matlab et les instructions qui y sont fournies.
GALAHAD peut également être installé via la commande "make" dans le cadre de l'écosystème d'optimisation Optrove qui comprend également CUTEst, SIFDecode et ARCHDefs. Cela présente l'avantage de fournir des scripts pour exécuter les exemples CUTEst directement depuis GALAHAD et de permettre les appels depuis Matlab, mais souffre de temps de construction considérablement plus longs.
Pour utiliser cette variante, suivez les instructions du wiki GALAHAD.