Dies ist der Befehl NPlam2, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
NetzPIPE - Netto-Arbeit PProtokoll Iunabhängig Performance EWertgeber
ZUSAMMENFASSUNG
NPtcp [-h Empfänger_Hostname] [-b TCP_buffer_sizes] [Optionen]
mpirun [-Maschinendatei Gastgeberliste] -np 2 NPmpi [-a] [-S] [-z] [Optionen]
mpirun [-Maschinendatei Gastgeberliste] -np 2 NPmpi2 [-f] [-g] [Optionen]
NPpvm [Optionen]
In den Abschnitten TESTEN unten finden Sie eine ausführlichere Beschreibung der Ausführung von NetPIPE in
jede Umgebung. Der Abschnitt OPTIONEN beschreibt die allgemeinen Optionen, die für alle verfügbar sind
Module. Siehe die README-Datei aus dem Tar-Ball unter
http://www.scl.ameslab.gov/Projects/NetPIPE/ für Dokumentation zum InfiniBand, GM,
SHMEM-, LAPI- und memcpy-Module.
BESCHREIBUNG
NetzPIPE verwendet eine einfache Reihe von Ping-Pong-Tests über eine Reihe von Nachrichtengrößen, um eine
vollständiges Maß für die Leistung eines Netzwerks. Es prallt Nachrichten mit zunehmender Größe ab
zwischen zwei Prozessen, sei es über ein Netzwerk oder innerhalb eines SMP-Systems. Nachrichtengrößen
werden in regelmäßigen Abständen und mit leichten Störungen gewählt, um ein vollständiges
Bewertung des Kommunikationssystems. Jeder Datenpunkt beinhaltet viele Ping-Pong-Tests, um
einen genauen Zeitpunkt liefern. Latenzen werden berechnet, indem die Round-Trip-Zeit in geteilt wird
die Hälfte für kleine Nachrichten (weniger als 64 Bytes).
Die Kommunikationszeit für kleine Nachrichten wird durch den Overhead im
Kommunikationsschichten, was bedeutet, dass die Übertragung latenzgebunden ist. Für größere
Nachrichten wird die Kommunikationsrate durch eine Komponente in der
Kommunikationssubsystem (PCI-Bus, Netzwerkkartenverbindung, Netzwerkswitch).
Diese Messungen können auf der Message-Passing-Schicht (MPI, MPI-2 und PVM) oder bei
die nativen Kommunikationsschichten, auf denen diese ausgeführt werden (TCP/IP, GM für Myrinet-Karten,
InfiniBand, SHMEM für die Cray T3E-Systeme und LAPI für IBM SP-Systeme). Aktuelle Arbeit ist
mit dem Ziel, einige interne Systemeigenschaften zu messen, wie z. B. das memcpy-Modul, das
misst die Kopierraten des internen Speichers oder ein in Entwicklung befindliches Festplattenmodul, das die
die Leistung zu verschiedenen I/O-Geräten.
Einige Anwendungen für NetPIPE umfassen:
Vergleich der Latenz und des maximalen Durchsatzes verschiedener Netzwerkkarten.
Vergleich der Leistung zwischen verschiedenen Arten von Netzwerken.
Suche nach Ineffizienzen in der Message-Passing-Schicht durch Vergleich mit der
native Kommunikationsschicht.
Optimierung der Message-Passing-Schicht und Abstimmung von Betriebssystem- und Treiberparametern für optimale
Leistung des Kommunikationssubsystems.
NetzPIPE ist mit vielen Modulen ausgestattet, die es ermöglichen, mit einer Vielzahl von
Kommunikationsschichten. Es ist ziemlich einfach, neue Schnittstellen für andere zuverlässige zu schreiben
Protokolle anhand der vorhandenen Module als Beispiele.
PRÜFUNG TCP
NPtcp kann jetzt auf zwei Arten gestartet werden, indem NPtcp manuell auf beiden Systemen gestartet wird oder durch
mit einem nplanunch-Skript. Um NPtcp manuell zu starten, muss der NetPIPE-Empfänger gestartet werden
zuerst auf dem entfernten System mit dem Befehl:
NPtcp [Optionen]
dann wird der Primärsender auf dem lokalen System mit dem Befehl . gestartet
NPtcp-h Empfänger_Hostname [Optionen]
Alle verwendeten Optionen müssen auf beiden Seiten gleich sein.
Das nplanunch-Skript verwendet ssh, um den Remote-Empfänger zu starten, bevor das lokale gestartet wird
Sender. Um rsh zu verwenden, ändern Sie einfach das nplanunch-Skript.
nplanunch NPtcp -h Empfänger_Hostname [Optionen]
Die -b TCP_buffer_sizes Option legt die TCP-Socket-Puffergröße fest, die stark sein kann
den maximalen Durchsatz auf einigen Systemen beeinflussen. Ein Durchsatzdiagramm, das sich abflacht
kann plötzlich ein Zeichen dafür sein, dass die Leistung durch die Socket-Puffergrößen eingeschränkt ist.
PRÜFUNG MPI und MPI-2
Die Verwendung der MPI-Schnittstelle für NetPIPE hängt von der verwendeten MPI-Implementierung ab. Alle
erfordert die Angabe der Anzahl der Prozesse, normalerweise mit a -np 2 Argument.
Clusterumgebungen erfordern möglicherweise eine Liste der verwendeten Hosts, wenn jeder Job ausgeführt wird.
Fügen Sie die Liste der Hosts in hostlist ein und führen Sie dann für OpenMPI NetPIPE aus, indem Sie Folgendes verwenden:
mpirun --hostfile Gastgeberliste -np 2 NPmpi [NetPIPE-Optionen]
Für MPICH2 verwenden Sie stattdessen:
mpirun -Maschinendatei Gastgeberliste -np 2 NPmpi [NetPIPE-Optionen]
Um die einseitige Kommunikation des MPI-1-Standards zu testen, kompilieren Sie mit:
um mpi2
Wenn MPI wie oben beschrieben ausgeführt wird, werden 1-seitige MPI_Put()-Aufrufe in beide Richtungen verwendet.
wobei jeder Empfänger blockiert, bis das letzte Byte überschrieben wurde, bevor der
Nachricht zurück. Verwenden Sie die -f Option, um die Verwendung eines Zauns zu erzwingen, um zu blockieren, anstatt einen
Überschreiben des letzten Bytes. Die -g Option verwendet MP_Get()-Funktionen, um die
Daten statt MP_Put().
PRÜFUNG PVM
Starten Sie das pvm-System mit:
pvm
und Hinzufügen einer zweiten Maschine mit dem PVM-Befehl
hinzufügen Empfänger_Hostname
Beenden Sie die PVM-Befehlszeilenschnittstelle mit quit, und führen Sie dann den PVM NetPIPE-Empfänger auf einem aus
System mit dem Befehl:
NPpvm [Optionen]
und führen Sie den TCP NetPIPE-Sender auf dem anderen System mit dem Befehl aus:
NPpvm -h Empfänger hostname [Optionen]
Alle verwendeten Optionen müssen auf beiden Seiten gleich sein. Das nplanunch-Skript kann auch verwendet werden
mit NPpvm wie oben für NPtcp beschrieben.
PRÜFUNG METHODE
NetzPIPE testet die Netzwerkleistung durch Senden einer Reihe von Nachrichten bei jeder Blockgröße,
beginnend mit der unteren Grenze der Nachrichtengrößen.
Die Nachrichtengröße wird inkrementiert, bis die obere Grenze der Nachrichtengröße erreicht ist oder
die Zeit zum Senden eines Blocks überschreitet eine Sekunde, je nachdem, was zuerst eintritt. Nachrichtengrößen
werden in regelmäßigen Abständen gewählt, und für leichte Störungen von ihnen, um eine mehr
vollständige Bewertung des Kommunikationssubsystems.
Die NetzPIPE Ausgabedatei kann mit einem Programm wie grafisch dargestellt werden Gnuplot(1). Der Ausgang
Datei enthält drei Spalten: die Anzahl der Bytes im Block, die Übertragungsrate in Bits
pro Sekunde und die Zeit für die Übertragung des Blocks (die Hälfte der Round-Trip-Zeit). Die ersten zwei
Spalten werden normalerweise verwendet, um den Durchsatz gegenüber der Blockgröße darzustellen, während die dritte Spalte
liefert die Latenz. Zum Beispiel die Durchsatz Während Schutzmassnahmen bei Größe Grafik kann erstellt werden
durch grafische Darstellung von Bytes im Vergleich zu Bits pro Sekunde. Stichprobe Gnuplot(1) Befehle für einen solchen Graphen
wäre
setze logscale x
Plot "np.out"
OPTIONAL
-a asynchroner Modus: Prepost empfängt (MPI, IB-Module)
-b TCP_buffer_sizes
Legen Sie die Sende- und Empfangs-TCP-Puffergrößen fest (nur TCP-Modul).
-B Burst-Modus, bei dem alle Empfänge gleichzeitig vorgebucht werden (MPI, IB-Module).
-f Verwenden Sie einen Zaun, um die Vervollständigung zu blockieren (nur MPI2-Modul).
-g Verwenden Sie MPI_Get() anstelle von MPI_Put() (nur MPI2-Modul).
-h hostname
Geben Sie den Namen des Empfängerhosts an, mit dem eine Verbindung hergestellt werden soll (TCP, PVM, IB, GM).
-I Cache ungültig machen, um die Leistung ohne Cache-Effekte zu messen (betrifft hauptsächlich IB
und memcpy-Module).
-i Führen Sie eine Integritätsprüfung statt einer Leistungsbewertung durch.
-l Starting_msg_size
Geben Sie die untere Grenze für die Größe der zu testenden Nachrichten an.
-n wiederholt
Stellen Sie die Anzahl der Wiederholungen für jeden Test auf eine Konstante ein. Ansonsten ist die Anzahl der
Wiederholungen werden gewählt, um für jeden Test ein genaues Timing bereitzustellen. Seien Sie sehr vorsichtig, wenn
Angabe einer niedrigen Zahl, damit die Zeit für den Ping-Pong-Test den Timer überschreitet
Genauigkeit.
-O Quelloffset, Zieloffset
Geben Sie die Quell- und Ziel-Offsets der Puffer von der perfekten Seite an
Ausrichtung.
-o Name der Ausgabedatei
Geben Sie den Ausgabedateinamen an (Standard ist np.out).
-p Störungsgröße
NetPIPE wählt die Nachrichtengrößen in regelmäßigen Abständen und erhöht sie
exponentiell von der unteren Grenze zur oberen Grenze. An jedem Punkt ist es
testet auch Störungen von 3 Bytes oberhalb und 3 Bytes unterhalb jedes Testpunkts, um zu finden
Eigenheiten im System. Dieser Störwert kann mit dem geändert werden -p
Option oder deaktiviert mit -p 0 .
-r Diese Option setzt die TCP-Sockets nach jedem Test zurück (nur TCP-Modul). es ist
notwendig für einige Streaming-Tests, um gute Messungen zu erhalten, da das Socket-Fenster
Größe kann sonst zusammenbrechen.
-s Stellen Sie den Streaming-Modus ein, bei dem Daten nur in eine Richtung übertragen werden.
-S Verwenden Sie synchrone Sends (nur MPI-Modul).
-u obere Grenze
Geben Sie die obere Grenze für die Größe der zu testenden Nachricht an. Standardmäßig,
NetPIPE stoppt, wenn die Zeit zum Senden eines Blocks eine Sekunde überschreitet.
-z Nachrichten mit MPI_ANY_SOURCE empfangen (nur MPI-Modul)
-2 Stellen Sie den bidirektionalen Modus ein, bei dem beide Seiten gleichzeitig senden und empfangen
(von den meisten Modulen unterstützt). Sie müssen möglicherweise verwenden -a asynchron wählen
Kommunikation für MPI, um Einfrieren zu vermeiden. Für TCP beträgt die maximale Testgröße
begrenzt durch die TCP-Puffergrößen.
Nutzen Sie NPlam2 online über die Dienste von onworks.net