likwid-pin - Online în cloud

Aceasta este comanda likwid-pin 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


likwid-pin - fixați o aplicație secvențială sau threaded la procesoarele dedicate

REZUMAT


likwid-pin [-vhqipS] [-c ] [-s ] [-d ]

DESCRIERE


likwid-pin este o aplicație de linie de comandă pentru fixarea unei aplicații secvențiale sau cu mai multe fire
la procesoare dedicate. Poate fi folosit ca înlocuitor pentru set de sarcini(1). Opus
set de activități fără mască de afinitate, dar sunt specificate procesoare unice. Pentru multithreaded
aplicații bazate pe biblioteca pthread the pthread_create apelul la bibliotecă este supraîncărcat
prin LD_PRELOAD și fiecare fir creat este fixat la un procesor dedicat, așa cum este specificat
in core_list

În mod implicit, fiecare fir generat este fixat în nucleu, în ordinea apelurilor către
pthread_create. Este posibil să omiteți un singur thread folosind opțiunea de linie de comandă -s.

Pentru implementările OpenMP, compilatoarele gcc și icc sunt acceptate în mod explicit. Alții pot, de asemenea
muncă. likwid-pin setează variabila de mediu OMP_NUM_THREADS pentru dvs., dacă nu este deja
prezent. Va seta atâtea fire câte sunt prezente în expresia pin. Fii conștient de asta
cu pthreads firul părinte este întotdeauna fixat. Daca creezi de exemplu 4 fire cu
pthread_create și nu utilizați procesul părinte ca lucrător pe care încă trebuie să îl furnizați
num_threads+1 ID-uri procesor.

likwid-pin acceptă numerotări diferite pentru fixare. Numerotarea fizică implicită a
se folosesc miezurile. Aceasta este și numerotarea topologie likwid(1) rapoarte. Dar deasemenea
se poate folosi numerotarea logica in interiorul nodului sau socket-urilor. Dacă se utilizează cu un N (de exemplu -c
N:0-6) nucleele sunt numerotate logic pe întregul nod. Miezurile fizice sunt pe primul loc. Dacă
un sistem, de exemplu, are 8 nuclee cu 16 fire SMT cu -c N:0-7 veți obține toate nucleele fizice.
Dacă specificați -c N:0-15, obțineți toate nucleele fizice și toate firele SMT. Cu S poți
specificați numerotări logice în interiorul soclurilor, iar nucleele fizice sunt pe primul loc. Puteți amesteca
domenii diferite separate cu @. De exemplu, -c S0:0-3@S2:2-3 fixați firul 0-3 la logic
nucleele 0-3 pe soclul 0 și firele 4-5 pe nucleele logice 2-3 pe soclul 2.

Pentru aplicațiile în care politica de primă atingere a sistemelor numa nu poate fi folosită likwid-pin
poate fi folosit pentru a activa plasarea memoriei intercalate. Acest lucru poate accelera semnificativ
performanța codurilor cu mai multe fire legate de memorie. Toate nodurile numa la care utilizatorul a fixat firele
sunt folosite pentru intercalare.

OPŢIUNI


-v tipărește informațiile despre versiune la ieșirea standard, apoi iese.

-h imprimă un mesaj de ajutor la ieşirea standard, apoi iese.

-c OR OR <împrăștie politica>
specificați o listă numerică de procesoare. Lista poate conține mai multe articole,
separate prin virgulă și intervale. De exemplu 0,3,9-11. Puteți folosi și logic
numerotări, fie într-un nod (N), fie într-un soclu (S ) sau un domeniu numa (M ).
likwid-pin acceptă, de asemenea, fixarea logică într-un cpuset cu un prefix L. daca tu
omite această opțiune likwid-pin va fixa firele la procesoarele de pe nod
cu nuclee fizice mai întâi. Vedeți mai jos pentru detalii despre utilizarea unei expresii fir sau
politica de dispersie

-s
Specificați masca de ignorare ca număr HEX. Pentru fiecare bit set, firul corespunzător este
sărit.

-S Toate domeniile de memorie ccNUMA care aparțin listei de fire specificate vor fi curățate
înainte de alergare. Poate rezolva problemele cache-ului buffer-ului de fișiere pe Linux.

-p tipărește domeniile de fire disponibile pentru fixarea logică. Dacă este utilizat în combinație
cu -c, ID-urile procesorului fizic sunt tipărite în stdout.

-i setați politica de memorie numa pentru a intercala toate nodurile numa implicate în fixare

-q execuție silentioasă fără ieșire

-d
set delimitator utilizat pentru a scoate lista de procesoare fizice (-p & -c)

EXEMPLU


1. Pentru aplicarea standard ptthread:

likwid-pin -c 0,2,4-6 ./myApp

Procesul părinte este fixat la procesorul 0. Firul 0 la procesorul 2, firul 1 la
procesorul 4, firul 2 către procesorul 5 și firul 3 către procesorul 6. Dacă sunt mai multe fire
create decât cele specificate în lista de procesoare, aceste fire sunt fixate pe procesorul 0 ca
da înapoi.

2. Pentru gcc OpenMP trebuie specificate atâtea ID-uri în lista de procesoare câte fire de execuție sunt:

OMP_NUM_THREADS=4; likwid-pin -c 0,2,1,3 ./myApp

3. Controlul deplin asupra fixarii poate fi obținut prin specificarea unei mască de ignorare. De exemplu
următoarea comandă omite fixarea firului 1:

OMP_NUM_THREADS=4; likwid-pin -s 0x1 -c 0,2,1,3 ./myApp

4. Comutatorul -c acceptă definirea firelor de execuție într-un anumit domeniu de afinitate, cum ar fi
Nod NUMA sau grup cache. Domeniile de afinitate disponibile pot fi preluate cu -p
comutator și nicio altă opțiune pe linia de comandă. Domeniile comune de afinitate sunt N
(întregul nod), SX (socket X), CX (cache grup X) și MX (memorie grup X). Multiplu
domeniile de afinitate pot fi setate separate prin @. Pentru a fixa 2 fire pe fiecare priză
a unui sistem cu 2 prize:

OMP_NUM_THREADS=4; likwid-pin -c S0:0-1@S1:0-1 ./myApp

5. O altă definiție a argumentului comutatorului -c permite ca firele să fie fixate conform
la o expresie ca E:N:4:1:2. Sintaxa este E: :
fire>(: : ). Exemplul fixează 8 fire cu 2 fire SMT per
miez pe o mașină SMT 4:

OMP_NUM_THREADS=4; likwid-pin -c E:N:8:2:4 ./myApp

6. Ultima alternativă pentru comutatorul -c este împrăștierea automată a firelor
domenii de afinitate. De exemplu, pentru a împrăștia firele peste toate domeniile de memorie din a
Sistemul de:

OMP_NUM_THREADS=4; likwid-pin -c M: împrăștie ./myApp

Utilizați likwid-pin online folosind serviciile onworks.net



Cele mai recente programe online Linux și Windows