Aceasta este comanda NPopenmpi care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
NetPIPE - Netmuncă Protocol Iindependent Performance Eevaluator
REZUMAT
NPtcp [-h receptor_hostname] [-b TCP_buffer_sizes] [Opțiuni]
mpirun [-machinefile lista gazdelor] -np 2 NPmpi [-a] [-S] [-z] [opțiuni]
mpirun [-machinefile lista gazdelor] -np 2 NPmpi2 [-f] [-g] [opțiuni]
NPpvm [Opțiuni]
Consultați secțiunile de TESTARE de mai jos pentru o descriere mai completă a modului de a rula NetPIPE
fiecare mediu. Secțiunea OPȚIUNI descrie opțiunile generale disponibile pentru toți
module. Vedeți fișierul README din tar-ball la
http://www.scl.ameslab.gov/Projects/NetPIPE/ pentru documentație privind InfiniBand, GM,
Module SHMEM, LAPI și memcpy.
DESCRIERE
NetPIPE folosește o serie simplă de teste de ping-pong pe o gamă largă de dimensiuni de mesaj pentru a oferi a
măsura completă a performanței unei rețele. Transmite mesaje de dimensiuni tot mai mari
între două procese, fie într-o rețea, fie într-un sistem SMP. Dimensiunile mesajelor
sunt alese la intervale regulate, și cu ușoare perturbații, pentru a oferi un complet
evaluarea sistemului de comunicare. Fiecare punct de date implică multe teste de ping-pong
oferi o sincronizare precisă. Latentele sunt calculate prin împărțirea timpului dus-întors în
jumătate pentru mesaje mici (mai puțin de 64 de octeți).
Timpul de comunicare pentru mesajele mici este dominat de supraîncărcarea în
straturi de comunicare, ceea ce înseamnă că transmisia este legată de latență. Pentru mai mare
mesaje, rata de comunicare devine limitată de lățimea de bandă de o componentă din
subsistem de comunicații (bus PCI, legătură cu cardul de rețea, comutator de rețea).
Aceste măsurători pot fi efectuate la nivelul de trecere a mesajelor (MPI, MPI-2 și PVM) sau la
straturile de comunicații native pe care rulează (TCP/IP, GM pentru cardurile Myrinet,
InfiniBand, SHMEM pentru sistemele Cray T3E și LAPI pentru sistemele IBM SP). Lucrarea recentă este
având drept scop măsurarea unor proprietăţi interne ale sistemului precum modulul memcpy care
măsoară ratele de copiere a memoriei interne sau un modul de disc în curs de dezvoltare care măsoară
performanța la diferite dispozitive I/O.
Unele utilizări pentru NetPIPE includ:
Comparând latența și debitul maxim al diferitelor plăci de rețea.
Compararea performanței între diferite tipuri de rețele.
Căutând ineficiențe în stratul de transmitere a mesajelor comparându-l cu
stratul de comunicare nativ.
Optimizarea stratului de transmitere a mesajelor și reglarea sistemului de operare și a parametrilor driverului pentru optim
performanța subsistemului de comunicații.
NetPIPE este prevăzut cu multe module care îi permit să interfațeze cu o mare varietate de
straturi de comunicare. Este destul de ușor să scrieți interfețe noi pentru alte fiabile
protocoale folosind modulele existente ca exemple.
TESTARE TCP
NPtcp poate fi lansat acum în două moduri, pornind manual NPtcp pe ambele sisteme sau prin
folosind un script nplaunch. Pentru a porni manual NPtcp, receptorul NetPIPE trebuie pornit
mai întâi pe sistemul de la distanță folosind comanda:
NPtcp [opțiuni]
apoi emițătorul primar este pornit pe sistemul local cu comanda
NPtcp -h receptor_hostname [Opțiuni]
Orice opțiuni utilizate trebuie să fie aceleași pe ambele părți.
Scriptul nplaunch folosește ssh pentru a lansa receptorul de la distanță înainte de a porni localul
transmiţător. Pentru a utiliza rsh, schimbați pur și simplu scriptul nplaunch.
nplaunch NPtcp -h receptor_hostname [Opțiuni]
-b TCP_buffer_sizes opțiunea setează dimensiunea tamponului de socket TCP, care poate foarte mult
influențează debitul maxim pe unele sisteme. Un grafic de debit care se aplatizează
dintr-o dată poate fi un semn al performanței limitate de dimensiunile bufferului de socket.
TESTARE MPI și MPI-2
Utilizarea interfeței MPI pentru NetPIPE depinde de implementarea MPI utilizată. Toate
va necesita specificarea numărului de procese, de obicei cu a -np 2 a susținut.
Mediile de clustere pot necesita o listă a gazdelor utilizate atunci când fiecare job este rulat.
Puneți lista de gazde în lista de gazde, apoi, pentru OpenMPI, rulați NetPIPE folosind:
mpirun --hostfile lista gazdelor -np 2 NPmpi [Opțiuni NetPIPE]
Pentru MPICH2 folosiți în schimb:
mpirun -machinefile lista gazdelor -np 2 NPmpi [Opțiuni NetPIPE]
Pentru a testa comunicațiile unilaterale ale standardului MPI-1, compilați folosind:
face mpi2
Rularea așa cum este descris mai sus și MPI va folosi apeluri MPI_Put() unilaterale în ambele direcții,
cu fiecare receptor blocându-se până când ultimul octet a fost suprascris înainte de a respinge
mesaj înapoi. Folosește -f opțiunea de a forța utilizarea unui gard pentru a bloca, mai degrabă decât un
suprascrierea ultimului octet. The -g opțiunea va folosi funcțiile MP_Get() pentru a transfera
date mai degrabă decât MP_Put().
TESTARE MVP
Porniți sistemul pvm folosind:
PVM
și adăugarea unei a doua mașini cu comanda PVM
adăuga receptor_hostname
Ieșiți din interfața de linie de comandă PVM folosind Quit, apoi rulați receptorul PVM NetPIPE pe unul
sistem cu comanda:
NPpvm [opțiuni]
și rulați transmițătorul TCP NetPIPE pe celălalt sistem cu comanda:
NPpvm -h receptor nume de gazdă [Opțiuni]
Orice opțiuni utilizate trebuie să fie aceleași pe ambele părți. Poate fi folosit și scriptul nplaunch
cu NPpvm așa cum este descris mai sus pentru NPtcp.
TESTARE METODOLOGIE
NetPIPE testează performanța rețelei prin trimiterea unui număr de mesaje la fiecare dimensiune de bloc,
începând de la limita inferioară a dimensiunilor mesajelor.
Dimensiunea mesajului este incrementată până când se atinge limita superioară a dimensiunii mesajului sau
timpul de transmitere a unui bloc depășește o secundă, care apare prima. Dimensiunile mesajelor
sunt alese la intervale regulate, iar pentru ușoare perturbări de la ele pentru a oferi o mai mult
evaluarea completă a subsistemului de comunicații.
NetPIPE fișierul de ieșire poate fi reprezentat grafic folosind un program precum gnuplot(1). Ieșirea
fișierul conține trei coloane: numărul de octeți din bloc, rata de transfer în biți
pe secundă și timpul de transfer al blocului (jumătate din timpul dus-întors). Primii doi
coloanele sunt utilizate în mod normal pentru a reprezenta grafic debitul vs dimensiunea blocului, în timp ce a treia coloană
asigură latența. De exemplu, cel debit contra bloca mărimea se poate crea un grafic
prin reprezentarea grafică a octeților în funcție de biți pe secundă. Probă gnuplot(1) comenzi pentru un astfel de grafic
va fi
setați scara logaritmică x
complot „np.out”
OPŢIUNI
-a modul asincron: recepții prepost (module MPI, IB)
-b TCP_buffer_sizes
Setați dimensiunile buffer-ului TCP de trimitere și recepție (numai pentru modulul TCP).
-B Modul Burst în care toate recepțiile sunt prepostate simultan (module MPI, IB).
-f Utilizați un gard pentru a bloca pentru finalizare (numai modulul MPI2).
-g Utilizați MPI_Get() în loc de MPI_Put() (numai modulul MPI2).
-h nume de gazdă
Specificați numele gazdei receptorului la care să vă conectați (TCP, PVM, IB, GM).
-I Invalidați memoria cache pentru a măsura performanța fără efecte de cache (afectează mai ales IB
și modulele memcpy).
-i Faceți o verificare a integrității în loc de o evaluare a performanței.
-l starting_msg_size
Specificați limita inferioară pentru dimensiunea mesajelor de testat.
-n nrepetă
Setați numărul de repetări pentru fiecare test la o constantă. În caz contrar, numărul de
repetarea este aleasă pentru a oferi o sincronizare precisă pentru fiecare test. Fii foarte atent dacă
specificând un număr mic astfel încât timpul pentru testul de ping-pong să depășească cronometrul
precizie.
-O sursă_offset,dest_offset
Specificați offset-urile sursă și destinație ale bufferelor din pagina perfectă
aliniere.
-o nume_fișier_ieșire
Specificați numele fișierului de ieșire (implicit este np.out).
-p perturbation_size
NetPIPE alege dimensiunile mesajelor la intervale regulate, crescându-le
exponențial de la limita inferioară la limita superioară. În fiecare punct, acesta
de asemenea, testează perturbații de 3 octeți deasupra și 3 octeți sub fiecare punct de testare pentru a găsi
idiosincrazii în sistem. Această valoare a perturbației poate fi modificată folosind -p
opțiune sau dezactivat folosind -p 0 .
-r Această opțiune resetează socket-urile TCP după fiecare test (numai pentru modulul TCP). Este
necesar pentru unele teste de streaming pentru a obține măsurători bune de la fereastra prizei
dimensiunea se poate prăbuși altfel.
-s Setați modul de streaming în care datele sunt transmise doar într-o singură direcție.
-S Utilizați trimiteri sincrone (numai modulul MPI).
-u limită superioară
Specificați limita superioară a dimensiunii mesajului testat. În mod implicit,
NetPIPE se va opri când timpul de transmitere a unui bloc depășește o secundă.
-z Primiți mesaje folosind MPI_ANY_SOURCE (numai modulul MPI)
-2 Setați modul bidirecțional în care ambele părți trimit și primesc în același timp
(suportat de majoritatea modulelor). Este posibil să fie nevoie să utilizați -a pentru a alege asincron
comunicații pentru MPI pentru a evita înghețarea. Pentru TCP, dimensiunea maximă a testului va fi
limitat de dimensiunile buffer-ului TCP.
Utilizați NPopenmpi online folosind serviciile onworks.net