To jest polecenie NPtcp, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
RURA SIECIOWA - Nettopraca Protocol Inzależne Performance Erzeczoznawca
STRESZCZENIE
Nptcp [-h nazwa_hosta_odbiorcy] [-b Rozmiary_buforów TCP] [opcje]
mpiruna [-plik maszynowy lista hostów] -np 2 NPmpi [-a] [-S] [-z] [opcje]
mpiruna [-plik maszynowy lista hostów] -np 2 NPmp2 [-f] [-g] [opcje]
Npvm [opcje]
Zobacz sekcje TESTOWANIE poniżej, aby uzyskać pełniejszy opis uruchamiania NetPIPE w
w każdym środowisku. Sekcja OPCJE opisuje ogólne opcje dostępne dla wszystkich
moduły. Zobacz plik README z archiwum tar na
http://www.scl.ameslab.gov/Projects/NetPIPE/ do dokumentacji na InfiniBand, GM,
Moduły SHMEM, LAPI i memcpy.
OPIS
RURA SIECIOWA wykorzystuje prostą serię testów ping-pong w różnych rozmiarach wiadomości, aby zapewnić
pełna miara wydajności sieci. Odbija wiadomości o rosnącym rozmiarze
między dwoma procesami, zarówno w sieci, jak i w systemie SMP. Rozmiary wiadomości
są wybierane w regularnych odstępach czasu i z niewielkimi perturbacjami, aby zapewnić kompletną
ocena systemu komunikacji. Każdy punkt danych obejmuje wiele testów ping-pong, aby
zapewnić dokładny czas. Opóźnienia są obliczane poprzez podzielenie czasu podróży w obie strony w
połowa dla małych wiadomości (mniej niż 64 bajty).
Czas komunikacji dla małych wiadomości jest zdominowany przez koszty ogólne w
warstwy komunikacyjne, co oznacza, że transmisja jest ograniczona opóźnieniami. Dla większych
wiadomości, szybkość komunikacji staje się przepustowość ograniczona przez jakiś składnik w
podsystem komunikacyjny (magistrala PCI, łącze karty sieciowej, przełącznik sieciowy).
Pomiary te można wykonać w warstwie przekazującej komunikaty (MPI, MPI-2 i PVM) lub w
natywne warstwy komunikacyjne, na których działają (TCP/IP, GM dla kart Myrinet,
InfiniBand, SHMEM dla systemów Cray T3E oraz LAPI dla systemów IBM SP). Ostatnia praca to
mające na celu zmierzenie niektórych wewnętrznych właściwości systemu, takich jak moduł memcpy, który:
mierzy szybkość kopiowania pamięci wewnętrznej lub moduł dyskowy w trakcie opracowywania, który mierzy
wydajność do różnych urządzeń I/O.
Niektóre zastosowania NetPIPE obejmują:
Porównanie opóźnień i maksymalnej przepustowości różnych kart sieciowych.
Porównanie wydajności różnych typów sieci.
Poszukiwanie nieefektywności w warstwie przekazującej komunikaty poprzez porównanie jej z
natywna warstwa komunikacji.
Optymalizacja warstwy przekazującej komunikaty i optymalne dostrojenie parametrów systemu operacyjnego i sterownika
wydajność podsystemu łączności.
RURA SIECIOWA jest dostarczany z wieloma modułami, które pozwalają mu łączyć się z szeroką gamą
warstwy komunikacyjne. Pisanie nowych interfejsów dla innych niezawodnych jest dość łatwe
protokoły na podstawie istniejących modułów jako przykładów.
BADANIE TCP
NPtcp można teraz uruchomić na dwa sposoby, ręcznie uruchamiając NPtcp na obu systemach lub przez
za pomocą skryptu nlaunch. Aby ręcznie uruchomić NPtcp, należy uruchomić odbiornik NetPIPE
najpierw na zdalnym systemie za pomocą polecenia:
NPTCp [opcje]
następnie główny nadajnik jest uruchamiany w systemie lokalnym za pomocą polecenia
NPTCp -h nazwa_hosta_odbiorcy [opcje]
Wszelkie użyte opcje muszą być takie same po obu stronach.
Skrypt nlaunch używa ssh do uruchomienia zdalnego odbiornika przed uruchomieniem lokalnego
nadajnik. Aby użyć rsh, po prostu zmień skrypt nlaunch.
nuruchom NPtcp -h nazwa_hosta_odbiorcy [opcje]
Opona -b Rozmiary_buforów TCP opcja ustawia rozmiar bufora gniazda TCP, co może znacznie
wpływać na maksymalną przepustowość w niektórych systemach. Wykres przepustowości, który się spłaszcza
nagle może być oznaką ograniczenia wydajności przez rozmiary buforów gniazd.
BADANIE MPI i MPI-2
Użycie interfejsu MPI dla NetPIPE zależy od używanej implementacji MPI. Wszystko
będzie wymagać określenia liczby procesów, zwykle z -np 2 argumenty.
Środowiska klastrowe mogą wymagać listy hostów używanych podczas uruchamiania każdego zadania.
Umieść listę hostów na liście hostów, a następnie, dla OpenMPI, uruchom NetPIPE za pomocą:
mpirun --plik_hosta lista hostów -np 2 NPmpi [opcje NetPIPE]
W przypadku MPICH2 użyj zamiast tego:
mpirun -plik maszynowy lista hostów -np 2 NPmpi [opcje NetPIPE]
Aby przetestować komunikację jednostronną w standardzie MPI-1, skompiluj używając:
robić MPI2
Działa jak opisano powyżej, a MPI użyje jednostronnych wywołań MPI_Put() w obu kierunkach,
z każdym odbiornikiem blokującym, aż ostatni bajt zostanie nadpisany przed odbiciem
wiadomość z powrotem. Użyj -f możliwość wymuszenia użycia ogrodzenia do blokowania zamiast
nadpisanie ostatniego bajtu. ten -g opcja użyje funkcji MP_Get() do przesłania pliku
danych zamiast MP_Put().
BADANIE MVP
Uruchom system pvm za pomocą:
Daktyle
i dodanie drugiej maszyny za pomocą polecenia PVM
Dodaj nazwa_hosta_odbiorcy
Wyjdź z interfejsu wiersza poleceń PVM za pomocą quit, a następnie uruchom odbiornik PVM NetPIPE na jednym
system z poleceniem:
NPpvm [opcje]
i uruchom nadajnik TCP NetPIPE w innym systemie za pomocą polecenia:
Nppvm -h odbiorca hosta [opcje]
Wszelkie użyte opcje muszą być takie same po obu stronach. Można również użyć skryptu nlaunch
z NPpvm jak opisano powyżej dla NPtcp.
BADANIE METODOLOGIA
RURA SIECIOWA testuje wydajność sieci, wysyłając szereg komunikatów na każdy rozmiar bloku,
zaczynając od dolnej granicy rozmiarów wiadomości.
Rozmiar wiadomości jest zwiększany aż do osiągnięcia górnej granicy rozmiaru wiadomości lub
czas na przesłanie bloku przekracza jedną sekundę, która występuje jako pierwsza. Rozmiary wiadomości
są wybierane w regularnych odstępach czasu, a dla drobnych perturbacji z nich, aby zapewnić więcej
pełna ocena podsystemu komunikacyjnego.
Opona RURA SIECIOWA plik wyjściowy można wykreślić za pomocą programu takiego jak gnuplot(1). Wyjście
plik zawiera trzy kolumny: ilość bajtów w bloku, szybkość transferu w bitach
na sekundę oraz czas przeniesienia bloku (połowa czasu podróży w obie strony). Pierwsze dwa
kolumny są zwykle używane do tworzenia wykresów przepustowości względem rozmiaru bloku, podczas gdy trzecia kolumna
zapewnia opóźnienie. Na przykład wydajność przeciwko blok rozmiar można utworzyć wykres
poprzez wykreślenie bajtów w funkcji bitów na sekundę. Próbka gnuplot(1) polecenia dla takiego wykresu
byłby
ustaw skalę logarytmiczną x
działka "np.out"
OPCJE
-a tryb asynchroniczny: prepost odbiera (moduły MPI, IB)
-b Rozmiary_buforów TCP
Ustaw rozmiar bufora TCP wysyłania i odbierania (tylko moduł TCP).
-B Tryb Burst, w którym wszystkie odbiory są prepostowane na raz (moduły MPI, IB).
-f Użyj ogrodzenia do zablokowania w celu ukończenia (tylko moduł MPI2).
-g Użyj MPI_Get() zamiast MPI_Put() (tylko moduł MPI2).
-h hosta
Podaj nazwę hosta odbiornika, z którym chcesz się połączyć (TCP, PVM, IB, GM).
-I Unieważnij pamięć podręczną, aby zmierzyć wydajność bez efektów pamięci podręcznej (głównie wpływa na IB
i moduły memcpy).
-i Wykonaj kontrolę integralności zamiast oceny wydajności.
-l start_msg_size
Określ dolną granicę rozmiaru testowanych wiadomości.
-n nr powtórzeń
Ustaw liczbę powtórzeń dla każdego testu na stałą. W przeciwnym razie liczba
powtórzeń jest wybierany, aby zapewnić dokładny czas dla każdego testu. Bądź bardzo ostrożny, jeśli
określenie niskiej liczby, aby czas testu ping-ponga przekroczył licznik czasu
dokładność.
-O przesunięcie_źródłowe, przesunięcie_docelowe
Określ przesunięcia źródłowe i docelowe buforów z doskonałej strony
wyrównanie.
-o Nazwa pliku wyjściowego
Określ nazwę pliku wyjściowego (domyślnie np.out).
-p rozmiar_zakłóceń
NetPIPE wybiera rozmiary wiadomości w regularnych odstępach czasu, zwiększając je
wykładniczo od dolnej granicy do górnej granicy. W każdym momencie to
testuje również zakłócenia o 3 bajty powyżej i 3 bajty poniżej każdego punktu testowego, aby znaleźć
idiosynkrazje w systemie. Tę wartość zakłócenia można zmienić za pomocą -p
opcja lub wyłączone za pomocą -p 0 .
-r Ta opcja resetuje gniazda TCP po każdym teście (tylko moduł TCP). To jest
niezbędne do niektórych testów strumieniowania, aby uzyskać dobre pomiary od okna gniazda
w przeciwnym razie rozmiar może się zawalić.
-s Ustaw tryb przesyłania strumieniowego, w którym dane są przesyłane tylko w jednym kierunku.
-S Użyj wysyłek synchronicznych (tylko moduł MPI).
-u Górna granica
Określ górną granicę rozmiaru testowanej wiadomości. Domyślnie,
NetPIPE zatrzyma się, gdy czas transmisji bloku przekroczy jedną sekundę.
-z Odbieraj wiadomości za pomocą MPI_ANY_SOURCE (tylko moduł MPI)
-2 Ustaw tryb dwukierunkowy, w którym obie strony jednocześnie wysyłają i odbierają
(obsługiwane przez większość modułów). Być może będziesz musiał użyć -a wybrać asynchroniczny
komunikacji dla MPI, aby uniknąć zawieszeń. W przypadku protokołu TCP maksymalny rozmiar testu będzie
ograniczone przez rozmiary buforów TCP.
Korzystaj z NPtcp online za pomocą usług onworks.net