VMD mit Grafikprozessorbeschleunigung

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

Lattice Microbes

VMD ist ein Programm zur Molekularvisualisierung, mit dem sich biomolekulare Systeme wie Proteine, Nukleinsäuren, Lipidmembranen und Kohlenhydratstrukturen modellieren, darstellen und analysieren lassen. In diesem Programm steht eine große Auswahl an grafischen Darstellungen zur Verfügung, mit denen molekulare Strukturen visualisiert und eingefärbt werden können. Hierzu zählen etwa molekulare Oberflächen, raumfüllende CPK-Kugeln und -Zylinder (Corey-Pauling-Koltun), „Licorice“-Bindungen, „Backbone“-„Tubes“ und -„Ribbons“ sowie Sekundärstruktur-„Cartoons“.

Mit VMD kann die Kurve einer MD-Simulation Molekulardynamik animiert und analysiert werden. Dieses Programm lässt sich insbesondere als grafisches Frontend für ein externes MD-Programm verwenden, indem ein simuliertes Molekül auf einem lokalen oder Remote-Computer angezeigt und animiert wird.

Das Programm wird in der Regel auf interaktive Weise in einer grafischen Desktop-Umgebung eingesetzt. Es kann aber auch für nicht interaktive (Stapelmodus) analytische Berechnungen und Visualisierungsaufgaben auf Workstations (oder Einzel-Cluster-Knoten) und zeitgleich auf verteilten Speicher-Clustern und Supercomputern verwendet werden (mit MPI – Messaging Passing Interface). Weitere Informationen finden Sie auf der VMD-Website.

Installation

Sie können VMD herunterladen und im Bare-Metal-Verfahren installieren oder den VMD-Container aus der NVIDIA GPU Cloud abrufen und ausführen.

Das Installieren von Anwendungen in einer HPC-Umgebung (High Performance Computing) kann eine echte Herausforderung sein. Mit Containern können Sie die Anwendung ausführen, ohne sie im System zu installieren. Sie kann so einfach in der aktuellen Version der Anwendung eingerichtet werden, während die Leistung optimiert wird. Außerdem ist das Ausführen eines VMD-Containers sehr unkompliziert und kann in wenigen Minuten eingerichtet werden. 

Befehlsausführung

Sobald Sie den Container aus NGC abgerufen haben, gibt es zwei Optionen für die Ausführung:

  • Sie führen VMD direkt über den Befehl „nvidia-docker run“ aus.
  • Sie führen den VMD-Container innerhalb des Containers interaktiv aus.

1. VMD über die Befehlszeile ausführen

Zum Ausführen des VMD-Containers über die Befehlszeilenschnittstelle (CLI) geben Sie den nachfolgenden Befehl ein. Dadurch werden VMD ausgeführt und das aktuelle Arbeitsverzeichnis im Container im Pfad „/workspace“ bereitgestellt:

nvidia-docker run -it --rm -v $(pwd):/workspace nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /opt/vmd/bin/vmd -dispdev openglpbuffer

Sie können den CLI-Befehl stattdessen auch verwenden, um VMD mit einem Skript zu starten, das sich im Arbeitsverzeichnis befindet. Mit diesem Skript werden der VMD-Container gestartet und das Skript „xxx.vmd“ im Verzeichnis „workspace“ ausgeführt:

nvidia-docker run -it --rm -v $(pwd):/workspace nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /opt/vmd/bin/vmd -dispdev openglpbuffer -e /workspace/xxx.vmd

2. VMD interaktiv ausführen

In diesem Beispiel werden VMD interaktiv ausgeführt und eine H1N1-Testszene, die im Container enthalten ist, reproduziert. Das interaktive Ausführen ist nützlich, wenn VMD für Visualisierungs- und Analyseaufgaben verwendet wird, bei denen die VMD-Ausführungen möglicherweise mithilfe von externen Skripts gesteuert wird, erhebliche Dateiverwaltung in komplexen Verzeichnishierarchien durchgeführt wird oder mehrere VMD-Instanzen im selben Container und auf demselben Betriebssystem-Image ausgeführt werden.

Zum interaktiven Ausführen des VMD-Containers verwenden Sie den folgenden Befehl. Dieser startet den Container und bindet das aktuelle Verzeichnis unter „/workspace“ ein, sodass es im Container zur Verfügung steht. (Verwenden Sie die -v-Optionen für den unten stehenden Befehl, um Ihr lokales Datenverzeichnis dem Verzeichnis im Container zuzuordnen.)

nvidia-docker run -it --rm -v $(pwd):/workspace nvcr.io/hpc/vmd:cuda9-ubuntu1604-egl-1.9.4a17 /bin/bash

Nach dem Start des Containers befinden Sie sich im Verzeichnis „/“ und können zu „/opt/vmd/h1n1testscene“ wechseln, um den Render-Vorgang für die H1N1-Testszene zu wiederholen. Außerdem kann VMD gestartet werden. Führen Sie die H1N1-Testszene aus, die im Container enthalten ist. Die H1N1-Testszene umfasst die NVIDIA® CUDA®-beschleunigte Molekularflächen-Berechnung „QuickSurf“, benutzerdefinierte Labels sowie grafische Geometrie und EGL-basierte (Epsilon Generation Language) OpenGL-Render-Vorgänge, die nicht auf dem Bildschirm zu sehen sind:

cd /opt/vmd/h1n1testscene

/opt/vmd/bin/vmd -dispdev openglpbuffer -e h1n1-egloptix-test.vmd

Nachdem die H1N1-Szene geladen und gerendert wurde, schreibt VMD die Bildausgabe in die Datei „vmdscene-egl.tga“. Diese Datei kann dann nach „/workspace“ kopiert werden, sodass Sie das generierte Bild an einen Speicherort außerhalb des Containers kopieren können, um es sich dort anzusehen.

Testeinrichtung

Der Container enthält Skripte zum Auführen und Testen von VMD. Führen Sie die Testszene „HIV-1 capsid“ aus, die im Container enthalten ist. Diese Testszene umfasst die CUDA-beschleunigte Molekularflächen-Berechnung „QuickSurf“, EGL-basierte (Epsilon Generation Language) OpenGL-Render-Vorgänge, die nicht auf dem Bildschirm zu sehen sind, und OptiX GPU-beschleunigtes High-Fidelity-Raytracing:

cd /opt/vmd/hivtestscene
/opt/vmd/bin/vmd -dispdev openglpbuffer -e hiv-simple-egloptix-test.vmd

Empfohlene Systemkonfigurationen

Der VMD-Container wurde im Hinblick auf Zuverlässigkeit optimiert und getestet, um eine reibungslose Ausführung in NVIDIA® Pascal™- und NVIDIA Volta-basierten Systemen mit CUDA® 9 oder höher sicherzustellen. VMD und alle HPC-Anwendungscontainer, die in der NVIDIA GPU Cloud verfügbar sind, können in den folgenden Systemen ausgeführt werden:

  • Workstation: Mit NVIDIA Titan V und x86-CPU
  • NVIDIA® DGX™-Systeme
  • HPC-Cluster mit Pascal/Volta-Grafikprozessoren, CUDA 9, x86-CPU
  • Cloud (AWS, Google Cloud Platform und weitere)

Über die NVIDIA GPU Cloud erhalten Sie Zugang zu Anwendungscontainern mit Grafikprozessorbeschleunigung.