Я потратил бессонную ночь, разбираясь в этом, и решил поделиться с комьюнити.

Скачать исходный код

Исходный код ambertools можно скачать на странице. В разделе Option 3 требуется указать ваши credentials.

Скачивается файл AmberTools21.tar.bz2. Распаковать: 

tar xvjf AmberTools21.tar.bz2

Установить MPI

MPI - способ распараллеливания программ. Я думаю, нет никакого смысла в нативной установке AmberTools на M1, если вы не собираетесь использовать многопоточность.

Я предпочитаю установку через homebrew (если у вас его нет, он определенно должен у вас быть).

brew install open-mpi

Альтернативно можно скачать и установить Current stable release. По умолчанию он установится в /usr/local. Параметр -j позволяет воспользоваться многопоточностью для сборки программы.

tar xvjf openmpi-4.1.2.tar.bz2
cd openmpi-4.1.2
./configure --prefix=/usr/local
make -j 8 install

Проверьте, что в системе появилась команда mpirun.

Исправить установочные файлы

В файле amber20_src/build/run_cmake на строке 31 меняем -DMPI=FALSE на -DMPI=TRUE. Тут же я предлагаю поменять место установки, это параметр -DCMAKE_INSTALL_PREFIX. По умолчанию местом установки будет директория, в которой содержится amber20_src, мне кажется более подходящим местом папка /opt/amber20.

$cmake $AMBER_PREFIX/amber20_src \
    -DCMAKE_INSTALL_PREFIX=/opt/amber20 \
    -DCOMPILER=CLANG  -DBLA_VENDOR=Apple \
    -DMPI=TRUE -DCUDA=FALSE -DINSTALL_TESTS=TRUE \
    -DDOWNLOAD_MINICONDA=TRUE -DMINICONDA_USE_PY3=TRUE \
    2>&1 | tee cmake.log

Основная проблема в установке AmberTools на arm64 - то, что для своей работы он устанавливает себе Miniconda. Он устанавливает x86 версию, которая потом конфликтует с остальными своими программами, которые корректно компилируются под arm64.

Чтобы заставить его устанавливать arm64 версию, файле amber20_src/cmake/UseMiniconda.cmake на строчке 98 поменяйте:

set(MINICONDA_INSTALLER ${MINICONDA_DOWNLOAD_DIR}/${MINICONDA_INSTALLER_FILENAME})
set(INSTALLER_URL "http://repo.continuum.io/miniconda/${MINICONDA_INSTALLER_FILENAME}")

На

	set(MINICONDA_INSTALLER ${MINICONDA_DOWNLOAD_DIR}/Mambaforge-MacOSX-arm64.sh)
	set(INSTALLER_URL "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh")

Miniforge - это версия Miniconda, которая пользуется для установки пакетов только каналом conda-forge, который управляется сообществом. Сейчас он нас интересует потому что в отличие от Miniconda, для Miniforge существует версия для M1.

Я здесь использую установщик Mambaforge, это вариант Miniforge, который использует для установки менеджер пакетов mamba. Это не влияет на функциональность, но делает установку быстрее.

Установка

Переходим в папку amber20_src/build. Запускаем ./run_cmake. У меня этот процесс занял 8 минут. Вы должны увидеть следующее:

Запускаем установку. sudo требуется, чтобы установить программу в папку /opt, так как она закрыта на MacOS, если вы выбрали другое место для установки, это не обязательно. Параметр -j позволяет воспользоваться многопоточностью для сборки программы.

sudo make -j 8 install

Чтобы в вашем $PATH появились программы из установленного пакета AmberTools, впишите в свой файл .zshrc скрипт для инициализации. Или просто запомните эту команду и запускайте каждый раз, когда вы хотите заняться молекулярной динамикой.

echo "source /opt/amber20/amber.sh" >> ~/.zshrc
source ~/.zshrc