GALAHAD — это библиотека современных пакетов Fortran для нелинейной оптимизации с интерфейсами C, Python, Julia и MATLAB. Он содержит пакеты для общей ограниченной и неограниченной оптимизации, линейного и квадратичного программирования, нелинейной аппроксимации методом наименьших квадратов и глобальной оптимизации, а также пакеты для решения большого количества базовых подзадач оптимизации.
Более подробную информацию о пакетах в ГАЛАХАДЕ можно найти на сайте https://www.galahad.rl.ac.uk.
Все основные пакеты GALAHAD документированы на Fortran, C, Python и Julia:
Файлы справки предоставляются для функций MATLAB.
Мы предоставляем предварительно скомпилированную библиотеку GALAHAD на вкладке «Выпуски» для Linux, macOS (Intel и Silicon) и Windows.
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, если сможет его найти (в противном случае вам может потребоваться передать пути OpenBLAS через параметры libblas_path
и liblapack_path
в meson setup
). Вы также можете использовать реализацию BLAS/LAPACK конкретного поставщика, например одну из следующих:
Пожалуйста, прочтите README.meson для получения инструкций о том, как сообщить Meson, где найти эти необязательные зависимости.
По умолчанию GALAHAD создаст линейный решатель SSIDS, другие альтернативные линейные решатели:
Пожалуйста, прочтите README.meson для получения инструкций о том, как сообщить Meson, где найти эти необязательные зависимости.
GALAHAD может использовать задачи оптимизационных тестов из коллекции тестов CUTEst. Например, чтобы связать GALAHAD с CUTEst двойной точности, скомпилированным с помощью gfortran на 64-битной машине Linux:
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.
Чтобы установить интерфейс C с помощью системы сборки Meson:
meson setup builddir -Dciface=true
meson compile -C builddir
meson install -C builddir
meson test -C builddir --suite=C
Чтобы установить интерфейс Python с помощью системы сборки Meson:
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 также можно установить с помощью команды make как часть экосистемы оптимизации Optrove, которая также включает CUTEst, SIFDecode и ARCHDefs. Преимущество этого подхода состоит в том, что он предоставляет сценарии для запуска примеров CUTEst непосредственно из GALAHAD и позволяет выполнять вызовы из Matlab, но страдает от значительно более длительного времени сборки.
Чтобы использовать этот вариант, следуйте инструкциям в вики ГАЛАХАД.