Amberс ускорением на GPU

Ознакомьтесь с Руководством для быстрого запуска и начните работу.

Amber

AMBER - это приложение для молекулярной динамики, разработанное для моделирования биомолекулярных систем. AMBER поддерживает ускорение на GPU и работает с явными и неявными решателями (PME и GB).

Последняя версия приложения, AMBER 16, работает до 15 раз быстрее на NVIDIA GPU по сравнению с системами, оснащнными только CPU*, позволяя пользователям проводить биомолекулярное моделирование за несколько часов, а не дней. AMBER распространяется по лицензии Калифорнийского университета в Беркли.

*Сервер с 2-мя CPU: Intel E5-2690 v4 @ 2,6 ГГц | 3, ГГц Turbo (Broadwell-EP) | NVIDIA® Tesla® P100 | режим ECC отключен | режим Autoboost включен | набор данных PME-JAC_NVE_2fs

Amber работает до 15 раз быстрее на GPU

Установка

Системные требования

AMBER портируется на любую версию ОС Linux с компиляторами C, C++ и Fortran 95. Программа AMBER требует проведения большого объема вычислений на GPU, поэтому максимальную производительность могут обеспечить только самые современные GPU. Подробнее смотрите в разделе "Рекомендованные системные конфигурации". 

Инструкции по загрузке и установке

AMBER имеет открытый программный код и распространяется по лицензии. Подробнее читайте на официальном вебсайте

КРАТКОЕ ОПИСАНИЕ ПРОЦЕССА КОМПИЛЯЦИИ

1. Загрузите архивы исходного кода AMBER и AmberTools

2. Установите зависимости. Подробности об установке зависимостей AMBER для разных сборок Linux читайте здесь. Подробнее читайте в официальном Руководстве пользователя.

3. Извлеките пакеты и установите переменную среды AMBERHOME (здесь показано, как это сделать для bash)

tar xvjf AmberTools16.tar.bz2
tar xvjf Amber16.tar.bz2
cd amber16
export AMBERHOME=`pwd` # bash, zsh, ksh, etc.
setenv AMBERHOME `pwd` # csh, tcsh

4. Настройте AMBER

Скрипт сборки может потребовать обновить AMBER и / или AmberTools. В каждом предложенном случае выбирайте "Да".

./configure -cuda -noX11 gnu # С поддержкой CUDA , компиляторы GNU
./configure -cuda -mpi -noX11 gnu # С поддержкой CUDA и MPI, компиляторы GNU

5. Соберите AMBER

make install -j8 # use 8 threads to compile

Для проведения тестирования как на одном, так и на нескольких GPU, необходимо выполнить шаги настройки и сборки программы как с MPI, так и без.

./configure -cuda -noX11 gnu
make install -j32
./configure -cuda -mpi -noX11 gnu
make install -j32

Для проведения теста только на CPU вам также необходимо собрать двоичный файл без поддержки CUDA.

./configure -mpi -noX11 gnu
make install -j32

Запуск задач

Перед запуском версии AMBER с поддержкой ускорения на GPU установите последний драйвер дисплея NVIDIA для вашего GPU .

Чтобы запустить AMBER, вам понадобится исполняемый файл pmemd.cuda. Для запуска приложения на нескольких GPU вам также необходим исполняемый файл 'pmemd.cuda.MPI' (смотрите "Инструкции по загрузке и установке для компиляции с поддержкой MPI"). Для запуска приложения на нескольких GPU, они должны находиться в одном физическом узле, и используемые GPU должны поддерживать коммуникацию peer-to-peer для достижения максимальной производительности.

Вы также можете скачать набор тестов производительности AMBER16 . Предполагается, что вы загрузили тесты и извлекли их в каталог, который мы будем называть $ BENCHMARKS.

ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ

Для получения максимальной производительности при работе с AMBER рекомендуется выставлять максимальную тактовую частоту GPU. В данном случае мы устанавливаем тактовую частоту для GPU 0, разгоняя Tesla K80 на первой линии, Tesla M40 на второй и Tesla P100 - на третьей. Обратите внимание, что продукты Geforce могут не поддерживать разгон тактовой частоты процессора.

nvidia-smi -i 0 -ac 2505,875 # K80
nvidia-smi -i 0 -ac 3004,1114 # M40
Nvidia-smi -i 0 -ac 715,1328 # P100

Общая командная строка для запуска AMBER на системе с одним узлом:

$AMBERHOME/bin/pmemd.cuda -i {input} -o {output file} {options}

На мульти-GPU системе AMBER необходимо запусткать с mpirun, как указано ниже:

mpirun -np <NP> $AMBERHOME/bin/pmemd.cuda.MPI -i {input} -o {output} {options}

{options}

1. -O' : Переписывает файл с выходными данными, если он уже существует.

2. -o' : указывает наименование файла с выходными данными, которое записывается в

Рекомендуется всегда проверять файл выходных данных, чтобы убедиться, что все 87 параметров, в частности GPU, указаны правильно.

{input}

Используйте соответствующий входной файл из одного из наборов данных в следующем подразделе (обычно mdin.GPU)

Пример 1. Запустите моделирование JAC NVE на одном GPU:

cd $BENCHMARKS/PME/JAC_production_NVE
$AMBERHOME/bin/pmemd.cuda -i mdin.GPU -O -o mdout

Пример 2. Запустите моделирование производства целлюлозы NPT на 2 GPU (все на одном узле):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 2 $AMBERHOME/bin/pmemd.cuda.MPI -i mdin.GPU -O -o mdout

Пример 3. Запустите моделирование производства целлюлозы NPT на 32 ядрах CPU (все на одном узле):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 32 $AMBERHOME/bin/pmemd.MPI -i mdin.CPU -O -o mdout

Тесты производительности

В этом разделе демонстрируется ускорение обработки некоторых наборов данных на GPU. Результаты тестирования перечислены в порядке возрастания числа атомов. При интерперетации результатов обратите внимание, что показателем производительности является «нс / день» (чем выше, тем лучше), который находится в файле "mdout". Лучше всего оценивать все временные этапы (а не последние 1000 шагов).

Typical Production MD NPT с высокой энергетической эффективностью.
# of Atoms
23,558

Typical Production MD NPT with GOOD energy conservation, 2fs.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=250000,
ntpr=2500, ntwx=2500,
ntwr=250000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001,
/

DHFR (JAC PRODUCTION) NPT 2FS

JAC (Joint Amber CHARMM) Production NPT - это имитация дигидрофолат-редуктазы в модели воды TIP3P. Это один из самых нересурсоемких тестов, который содержит 23 588 атомов, включая воду. Тест выполняется с использованием явного решателя (PME).

Typical Production MD NPT with GOOD energy conservation.
# of Atoms
90,906

Typical Production MD NPT with GOOD energy conservation.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=70000,
ntpr=1000, ntwx=1000,
ntwr=10000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001
/

FACTOR IX NPT

FactorIX - это тест, моделирующий фактор свртывания крови IX. Он состоит из 90906 атомов, включая воду. Вода моделируется как явный решатель TIP3P. Тест выполняется с использованием явного решателя (PME).

Typical Production MD NVT
# of Atoms
408,609

Typical Production MD NVT
 

& cntrl
ntx=5, irest=1,
ntc=2, ntf=2,
nstlim=14000,
ntpr=1000, ntwx=1000,
ntwr=8000,
dt=0.002, cut=8.,
ntt=1, tautp=10.0,
temp0=300.0,
ntb=2, ntp=1, barostat=2,
ioutfm=1,
/

CELLULOSE NPT

Этот тест имитирует целлюлозное волокно. Это одна из наиболее крупных моделей для симуляции, которая содержит 408 609 атомов, включая воду. Вода моделируется как явный решатель TIP3P. Тест выполняется с использованием явного решателя (PME).

Ожидаемая производительность

В этом разделе представлены ожидаемые показатели производительности для разных систем с одним и несколькими вычислительными узлами.

Производительность Amber (JAC_NVE) на сервере с одним узлом
Производительность Amber (factorIX_NVE) на сервере с одним узлом
Производительность Amber (Cellulose_NPT) на сервере с одним узлом

Рекомендованные системные конфигурации

Конфигурация аппаратного обеспечения

PC

Parameter
Specs

CPU Architecture

x86

System Memory

16-32GB

CPUs

1-2

GPU Model

NVIDIA TITAN X

GPUs

1-2

Servers

Parameter
Specs

CPU Architecture

x86

System Memory

64-128GB

CPUs

1-2

GPU Model (for workstations)

Tesla® P100

GPU Model (for servers)

Tesla® P100

GPUs

1-2 P100 PCIe
1-4 P100 SMX2

Конфигурация программного обеспечения

Software stack

Parameter
Version

Application

AMBER 16

OS

Centos 7.2

GPU Driver

375.20 or newer

CUDA Toolkit

8.0 or newer

See a list of supported GPUs on Amber.

Соберите свою идеальную систему прямо сегодня.