MILC MIT GRAFIKPROZESSORBESCHLEUNIGUNG

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

NAMD

MILC ist Teil einer Gruppe von Codes, die von der MIMD Lattice Computation (MILC) Collaboration entwickelt wurden, um die Quantenchromodynamik (QCD) zu untersuchen, d. h. die Theorie der starken Wechselwirkungen der subatomaren Physik. MILC führt Simulationen der vierdimensionalen SU(3)-Gittereichtheorie auf parallelen MIMD-Maschinen durch. „Starke Wechselwirkungen“ sind für die Bindung der Quarks in Protonen und Neutronen verantwortlich und stellen die Kraft dar, die Protonen und Neutronen im Atomkern zusammenhält.

Die MILC Collaboration hat Anwendungscodes entwickelt, um mehrere verschiedene QCD-Forschungsbereiche zu untersuchen. Nur eine davon –die ks_dynamical-Simulationen mit herkömmlichen dynamischen Kogut-Susskind-Quarks – werden hier verwendet. Weitere Informationen zu MILC finden Sie hier.

Installation

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.
Das Ausführen von HPC-Anwendungen über Container ist sehr unkompliziert und kann in wenigen Minuten eingerichtet werden. Der MILC-Container ist jetzt in der NVIDIA GPU Cloud (NGC) verfügbar.

Befehlsausführung

Sobald Sie den MILC-Container aus NGC abgerufen haben, gibt es zwei Möglichkeiten für die Ausführung:

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

1. MILC über die Befehlszeile ausführen

In diesem Beispiel führen wir den APEX-Benchmark in einem 18 x 18 x 18 x 36-Gitter mit den Skripten aus, die sich im Verzeichnis /workspace/examples in dem Container eines Grafikprozessors befinden.

Beachten Sie, dass die APEX-Daten vom Skript heruntergeladen werden, wenn sie nicht in dem Verzeichnis verfügbar sind, das in /data im Container eingebunden (gemountet) ist.

Um die Ausgabe zu speichern, ordnen wir das aktuelle Arbeitsverzeichnis (mit -v) dem Verzeichnis /apex im Container zu und speichern unsere Protokolldatei dort, sodass sie nach Abschluss außerhalb des Containers verfügbar ist. Geben Sie den folgenden Befehl ein, um den MILC-Container über die Befehlszeilenschnittstelle (CLI) auszuführen:

nvidia-docker run -ti --rm -v $(pwd)/data:/data -v $(pwd):/apex nvcr.io/hpc/milc:patch4Oct2017 /workspace/examples/apex.sh 1

Sie können den CLI-Befehl stattdessen auch auf Ihr lokales Verzeichnis verweisen und Ihre eigenen Skripten (beispielsweise „*.sh“) ausführen. Mit diesem Skript werden der MILC-Container gestartet und das Skript „*.sh“ im Verzeichnis „results“ ausgeführt:

nvidia-docker run -ti --rm -v $(pwd)/data:/data -v $(pwd):/results nvcr.io/hpc/milc:patch4Oct2017 /results/*.sh

2. MILC interaktiv ausführen

In diesem Beispiel führen wir den APEX-Benchmark erneut im Verzeichnis „/workspace“ im Container aus. Die interaktive Ausführung ist nützlich, um mehrere MILC-Container auf demselben Betriebssystem-Image auszuführen.

Zum interaktiven Ausführen des MILC-Containers verwenden Sie den folgenden Befehl. Dieser startet den Container und bindet das aktuelle Verzeichnis unter „/work“ 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 -ti --rm -v $(pwd)/data:/data -v $(pwd):/work nvcr.io/hpc/milc:patch4Oct2017 /bin/bash

Nach dem Starten des Containers befinden Sie sich im Verzeichnis „/workspace“ und können MILC auf zwei verschiedene Arten ausführen. Eine Möglichkeit ist, MILC im Verzeichnis „/workspace“ mit den Standardskripten auszuführen, die Skripten zu ändern und erneut auszuführen. Beachten Sie, dass alle eingebundenen Datensätze sich im Verzeichnis „/data“ befinden, wenn Sie den obigen Befehl verwenden.

/workspace/examples/apex.sh 1

Sie können auch Ihr eigenes Arbeitsverzeichnis mit Ihren Skripten mit „/work“ im Container verbinden und diese einmal im Container ausführen:

-v :/work

Benchmarks

In diesem Abschnitt wird die typische Leistung des MILC-Containers in Systemen mit Grafikprozessorbeschleunigung angezeigt.

tesla-gpu-ready-apps-milc-pascal-benchmark-chart-625-udt-r2
tesla-gpu-ready-apps-milc-volta-benchmark-chart-625-udt-r2

EMPFOHLENE SYSTEMKONFIGURATIONEN

Der MILC-Container wurde im Hinblick auf Zuverlässigkeit optimiert und getestet, um eine reibungslose Ausführung in NVIDIA® Pascal™- und NVIDIA Volta-basierten Systemen mit NVIDIA CUDA® 9 oder höher sicherzustellen. MILC 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 Station™
  • NVIDIA DGX-1™
  • HPC-Cluster mit Pascal/Volta-Grafikprozessoren, CUDA 9, x86-CPU
  • Cloud: Amazon Web Services

MIT NGC AUF CONTAINER FÜR ANWENDUNGEN MIT GRAFIKPROZESSORBESCHLEUNIGUNG ZUGREIFEN