Dit is de opdracht likwid-pin die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
likwid-pin - pin een sequentiële of threaded applicatie op speciale processors
KORTE INHOUD
like-pin [-vhqipS] [-c ] [-s ] [-d ]
PRODUCTBESCHRIJVING
like-pin is een opdrachtregeltoepassing om sequentiële of multithreaded toepassingen vast te pinnen
naar toegewijde verwerkers. Het kan worden gebruikt als vervanging voor takenset(1). Tegenovergesteld aan
takenset geen affiniteitsmasker maar er zijn enkele processors gespecificeerd. Voor multithreaded
applicaties gebaseerd op de pthread-bibliotheek de pthread_creëren bibliotheekoproep is overbelast
via LD_PRELOAD en elke gemaakte thread wordt zoals gespecificeerd vastgemaakt aan een speciale processor
in kern_lijst
Standaard wordt elke gegenereerde thread vastgemaakt aan de kern in de volgorde van aanroepen
pthread_creëren. Het is mogelijk om enkele threads over te slaan met behulp van de opdrachtregeloptie -s.
Voor OpenMP-implementaties worden gcc- en icc-compilers expliciet ondersteund. Anderen mogen ook
werken. like-pin stelt de omgevingsvariabele OMP_NUM_THREADS voor u in als dit nog niet het geval is
cadeau. Het zal zoveel threads instellen als aanwezig zijn in de pin-expressie. Wees bewust van
met pthreads is de bovenliggende thread altijd vastgezet. Als je bijvoorbeeld 4 threads maakt met
pthread_creëren en gebruik het bovenliggende proces niet als werknemer die u nog moet leveren
num_threads+1 processor-ID's.
like-pin ondersteunt verschillende nummeringen voor vastzetten. Standaard fysieke nummering van
de kernen worden gebruikt. Dit is ook de nummering gelijkaardige-topologie(1) rapporten. Maar ook
logische nummering binnen het knooppunt of de sockets kunnen worden gebruikt. Bij gebruik met een N (bijv. -c
N:0-6) de kernen zijn logisch genummerd over het hele knooppunt. Fysieke kernen komen op de eerste plaats. Als
een systeem heeft bijvoorbeeld 8 cores met 16 SMT threads met -c N:0-7 krijg je alle fysieke cores.
Als u -c N:0-15 opgeeft, krijgt u alle fysieke kernen en alle SMT-threads. Met S kan dat
specificeer logische nummeringen binnen sockets, opnieuw komen fysieke kernen op de eerste plaats. Je kunt mixen
verschillende domeinen gescheiden door @. Bijv. -c S0:0-3@S2:2-3 pin je thread 0-3 naar logisch
cores 0-3 op socket 0 en threads 4-5 op logische cores 2-3 op socket 2.
Voor toepassingen waarbij first touch-beleid op numa-systemen niet kan worden toegepast like-pin
kan worden gebruikt om interleave-geheugenplaatsing in te schakelen. Dit kan het proces aanzienlijk versnellen
prestaties van geheugengebonden multithreaded codes. Alle numa-knooppunten waaraan de gebruiker threads heeft vastgemaakt
worden gebruikt voor interleaving.
OPTIES
-v drukt versie-informatie af naar standaarduitvoer en sluit vervolgens af.
-h drukt een helpbericht af naar standaarduitvoer en sluit vervolgens af.
-c OR OR <verstrooien beleid>
specificeer een numerieke lijst van processors. De lijst kan meerdere items bevatten,
gescheiden door komma's en bereiken. Bijvoorbeeld 0,3,9-11. Je kunt ook logisch gebruiken
nummeringen, ofwel binnen een knooppunt (N), een socket (S ) of een numa-domein (M ).
likwid-pin ondersteunt ook logische pinning binnen een cpuset met een L-voorvoegsel. als jij
laat deze optie weg, likwid-pin pint de threads naar de processors op het knooppunt
eerst met fysieke kernen. Zie hieronder voor meer informatie over het gebruik van een thread-expressie of
spreidingsbeleid
-s
Geef masker overslaan op als HEX-nummer. Voor elke ingestelde bit is de bijbehorende thread
overgeslagen.
-S Alle ccNUMA-geheugendomeinen die tot de opgegeven threadlijst behoren, worden opgeschoond
voor de vlucht. Kan cacheproblemen met bestandsbuffers op Linux oplossen.
-p drukt de beschikbare threaddomeinen af voor logisch vastzetten. Indien gecombineerd gebruikt
met -c worden de fysieke processor-ID's afgedrukt naar stdout.
-i stel het numa-geheugenbeleid in om alle numa-knooppunten die betrokken zijn bij vastzetten te interleaven
-q stille uitvoering zonder uitvoer
-d
set delimiter gebruikt om de fysieke processorlijst uit te voeren (-p & -c)
VOORBEELD
1. Voor standaard pthread-toepassing:
like-pin -c 0,2,4-6 ./mijnApp
Het bovenliggende proces is vastgemaakt aan processor 0. Thread 0 naar processor 2, thread 1 naar
processor 4, thread 2 naar processor 5 en thread 3 naar processor 6. Als er meer threads zijn
gemaakt dan gespecificeerd in de processorlijst, worden deze threads vastgemaakt aan processor 0 as
terugvallen.
2. Voor gcc OpenMP moeten evenveel id's worden opgegeven in de processorlijst als er threads zijn:
OMP_NUM_THREADS=4; like-pin -c 0,2,1,3 ./mijnApp
3. Volledige controle over het vastzetten kan worden bereikt door een masker voor overslaan op te geven. Bijvoorbeeld
het volgende commando slaat het vastzetten van thread 1 over:
OMP_NUM_THREADS=4; like-pin -s 0x1 -c 0,2,1,3 ./mijnApp
4. De schakeloptie -c ondersteunt de definitie van threads in een specifiek affiniteitsdomein zoals
NUMA-knooppunt of cachegroep. De beschikbare affiniteitsdomeinen kunnen worden opgehaald met de -p
switch en geen verdere optie op de commandoregel. De gemeenschappelijke affiniteitsdomeinen zijn N
(volledig knooppunt), SX (socket X), CX (cachegroep X) en MX (geheugengroep X). Meerdere
affiniteitsdomeinen kunnen worden gescheiden door @. Om 2 draden op elke socket te pinnen
van een systeem met 2 stopcontacten:
OMP_NUM_THREADS=4; like-pin -c S0:0-1@S1:0-1 ./mijnApp
5. Een andere argumentdefinitie van de schakeloptie -c staat toe dat de threads overeenkomstig worden vastgezet
naar een uitdrukking als E:N:4:1:2. De syntaxis is E: :
discussies>(: : ). Het voorbeeld pint 8 threads met 2 SMT-threads per
kern op een SMT 4-machine:
OMP_NUM_THREADS=4; like-pin -c NL:8:2:4 ./mijnApp
6. Het laatste alternatief voor de schakeloptie -c is het automatisch verspreiden van threads
affiniteit domeinen. Bijvoorbeeld om de threads te verspreiden over alle geheugendomeinen in een
systeem:
OMP_NUM_THREADS=4; like-pin -c M: verstrooien ./mijnApp
Gebruik likwid-pin online met behulp van onworks.net-services