Amber mit Grafikprozessorbeschleunigung

Anleitung für grafikprozessorfähige Anwendungen lesen und direkt beginnen

Amber

AMBER ist ein Programm für molekulardynamische Berechnungen und wird zur Simulation biomolekularer Systeme benutzt. AMBER ist grafikprozessorbeschleunigt und wird sowohl für die PME-Simulation expliziter Lösungsmittel als auch für die GB-Simulation impliziter Lösungsmittel ausgeführt.

Die aktuelle Version, AMBER 16, läuft mit NVIDIA-Grafikprozessoren 15-mal schneller als auf rein CPU-basierten Systemen.* Das ermöglicht den Anwendern, biomolekulare Simulationen in Stunden anstatt in Tagen durchzuführen. AMBER wird unter einer Lizenz von der University of California vertrieben.

* Server mit Doppel-CPU: Intel E5-2690 v4 @ 2,6 GHz | 3,5 GHz Turbo (Broadwell-EP) | NVIDIA® Tesla® P100 | ECC aus| Autoboost ein| PME-JAC_NVE_2fs-Datensatz

Amber läuft auf Grafikprozessoren 15-mal schneller

Installation

Systemanforderungen

AMBER ist auf jede Version von Linux mit den Compilern C, C++ und Fortran 95 portierbar. AMBER benutzt sehr intensiv den Grafikprozessor, daher wird mit den neuesten Grafikprozessoren die höchste Leistung erzielt. Einzelheiten dazu finden Sie im Abschnitt mit den empfohlenen Systemkonfigurationen. 

Download‑ und Installationsanleitung

AMBER wird nach dem Erwerb einer Lizenz in Form von Quellcode verteilt. Informationen hierzu finden Sie auf der Website zur Anwendung

KOMPILIERUNG IM ÜBERBLICK

1. Laden Sie AMBER und die AmberTools-Quellcodearchive herunter.

2. Installieren Sie Abhängigkeiten. Informationen zum Installieren von AMBER-Abhängigkeiten in einer Vielzahl von Linux-Distributionen finden Sie hier. Weitere Informationen finden Sie im offiziellen Referenzhandbuch.

3. Extrahieren Sie die Pakete und legen Sie die AMBERHOME-Umgebungsvariable fest (hier ein Beispiel für „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. Konfigurieren Sie AMBER.

Das Build-Skript muss ggf. AMBER und/oder AmberTools aktualisieren. Wählen Sie jedes Mal „y“, wenn Sie zur Bestätigung aufgefordert werden.

./configure -cuda -noX11 gnu # Mit CUDA-Unterstützung, GNU-Compiler
./configure -cuda -mpi -noX11 gnu # Mit CUDA- und MPI-Unterstützung, GNU-Compiler

5. Erstellen Sie AMBER.

make install -j8 # 8 Threads zum Kompilieren verwenden

Wenn Sie Benchmarktests mit einem einzelnen und auch mit mehreren Grafikprozessoren durchführen möchten, müssen Sie die Konfigurierungs- und Erstellungsschritte sowohl mit MPI als auch ohne durchführen. 

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

Um Benchmarktest in rein CPU-basierten Systemen durchzuführen, müssen Sie auch eine nicht-CUDA-fähige Binärdatei erstellen. 

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

Befehlsausführung

Bevor Sie eine grafikprozessorbeschleunigte Version von AMBER ausführen, installieren Sie den aktuellsten NVIDIA-Bildschirmtreiber für Ihren Grafikprozessor.

Um AMBER auszuführen, benötigen Sie auch die ausführbare Datei „pmemd.cuda“. Bei Benchmarktests mit mehreren Grafikprozessoren benötigen Sie auch die ausführbare Datei „pmemd.cuda.MPI“ (siehe Download‑ und Installationsanweisungen zum Kompilieren mit MPI-Unterstützung). Bei Benchmarktests mit mehreren Grafikprozessoren sollten sich diese in demselben physischen Knoten befinden und die verwendeten Grafikprozessoren müssen die Peer-to-Peer-Kommunikation unterstützen, um die bestmögliche Leistung zu erhalten.

Sie sollten auch die AMBER16-Benchmark-Suite herunterladen, die kostenlos auf der Benchmark-Seite verfügbar ist. Ab diesem Punkt wird angenommen, dass Sie die Benchmarktests heruntergeladen und in ein Verzeichnis extrahiert haben, das wir als $BENCHMARKS bezeichnen.

STEUERUNG ÜBER DIE BEFEHLSZEILE

Es wird empfohlen, die Boost-Taktung des Grafikprozessors beim Ausführen von AMBER auf ein Maximum festzulegen, um die beste Leistung zu erzielen. In diesem Fall legen wir die Taktgeber für Grafikprozessor 0 fest, indem wir die Boost-Taktgeber für einen Tesla K80 in der ersten Zeile, einen Tesla M40 in der zweiten Zeile und einen Tesla P100 in der dritten Zeile verwenden. Beachten Sie, dass GeForce-Geräte unter Umständen nicht über änderbare Boost-Takte verfügen.

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

Allgemeine Befehlszeile zur Ausführung von AMBER in einem System mit Einzelknoten:

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

In einem System mit mehreren Grafikprozessoren ist AMBER wie folgt mit „mpirun“ auszuführen:

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

{options}

1. -O : Ausgabedatei überschreiben, wenn sie bereits vorhanden ist.

2. -o : Den Namen der Datei angeben, in die die Ausgabe geschrieben werden soll

Es wird empfohlen, immer den Anfang der Ausgabedatei zu prüfen, um sicherzustellen, dass alle 87 Parameter, insbesondere die Grafikprozessoren, korrekt angegeben wurden.

{input}

Verwenden Sie die entsprechende Eingabedatei aus einem der Datensätze im nächsten Unterabschnitt (im Allgemeinen „mdin.GPU“).

Beispiel 1: Führen Sie JAC Production NVE (DHFR (NVE) 2fs auf der Benchmarktest-Seite) in einem System mit einem einzelnen Grafikprozessor aus:

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

Beispiel 2: Führen Sie Cellulose Production NPT in einem System mit zwei Grafikprozessoren (alle in demselben Knoten) aus:

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

Beispiel 3: Führen Sie Cellulose Production NPT in einem System mit 32 CPU-Cores (alle in demselben Knoten) aus:

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

Benchmarks

In diesem Abschnitt wird die Grafikprozessorbeschleunigung anhand ausgewählter Datensätze erläutert. Die Benchmarks sind aufsteigend nach der Anzahl der Atome aufgeführt. Beim Lesen der Ausgabe ist „ns/Tag“ die Leistungszahl (je höher, desto besser), die sich am Ende der Ausgabe in der Datei „mdout“ befindet. Am besten führen Sie die Messung über alle Zeitschritte durch (anstatt nur über die letzten 1.000 Schritte).

Typischer Production MD NPT-Benchmarktest mit GERINGEM Energieverbrauch, 2fs.
# 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 ist DHFR in einem TIP3P Wassermodell. Dies ist einer der kleineren Benchmarktests mit 23.588 Atomen, einschließlich Wasser. Der Benchmarktest wird mit einem expliziten Lösungsmittelmodell (PME) ausgeführt.

Typischer Production MD NPT-Benchmarktest mit GERINGEM Energieverbrauch.
# 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 ist ein Benchmarktest, der den Blutgerinnungsfaktor IX simuliert. Er besteht aus 90.906 Atomen, einschließlich Wasser. Wasser wird als explizites TIP3P-Lösungsmittel modelliert. Dieser Benchmarktest wird mit einem expliziten Lösungsmittelmodell (PME) ausgeführt.

Typischer Production MD NVT-Benchmarktest
# 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

Dieser Benchmarktest simuliert eine Zellulosefaser. Es ist eines der größeren Modelle, die im Benchmarktest mit 408.609 Atomen, einschließlich Wasser, simuliert werden. Wasser wird als explizites TIP3P-Lösungsmittel modelliert. Der Benchmarktest wird mit einem expliziten Lösungsmittelmodell (PME) ausgeführt.

Erwartete Leistungsergebnisse

In diesem Abschnitt finden Sie die Benchmarks für die erwartete Leistung auf verschiedenen Systemen mit einem oder mehreren Knoten.

Amber (JAC_NVE)-Leistung auf einem Server mit einem einzelnen Knoten
Amber (factorIX_NVE)-Leistung auf einem Server mit einem einzelnen Knoten
Amber (Cellulose_NPT)-Leistung auf einem Server mit einem einzelnen Knoten

Empfohlene Systemkonfigurationen

Hardwarekonfiguration

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

Softwarekonfiguration

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.

Ihre ideale Grafikprozessorlösung