likwid-pin - Online nel cloud

Questo è il comando likwid-pin che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


likwid-pin: consente di collegare un'applicazione sequenziale o con thread a processori dedicati

SINOSSI


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

DESCRIZIONE


likwid pin è un'applicazione a riga di comando per bloccare un'applicazione sequenziale o multithread
a processori dedicati. Può essere utilizzato in sostituzione di compiti(1). Opposta a
taskset nessuna maschera di affinità ma sono specificati singoli processori. Per multithread
applicazioni basate sulla libreria pthread the pthread_create la chiamata alla libreria è sovraccarica
tramite LD_PRELOAD e ogni thread creato viene bloccato su un processore dedicato come specificato
in core_list

Per impostazione predefinita, ogni thread generato è bloccato al core nell'ordine delle chiamate a
pthread_create. È possibile saltare singoli thread utilizzando l'opzione della riga di comando -s.

Per le implementazioni OpenMP i compilatori gcc e icc sono esplicitamente supportati. Altri possono anche
lavoro. likwid pin imposta la variabile d'ambiente OMP_NUM_THREADS per te se non già
regalo. Imposterà tanti thread quanti sono presenti nell'espressione pin. Fai attenzione a
con pthreads il thread genitore è sempre bloccato. Se crei ad esempio 4 thread con
pthread_create e non utilizzare il processo genitore come lavoratore che devi ancora fornire
num_threads+1 ID processore.

likwid pin supporta diverse numerazioni per il pinning. Per default numerazione fisica di
vengono utilizzati i nuclei. Questa è anche la numerazione topologia likwid(1) rapporti. Ma anche
si può utilizzare la numerazione logica all'interno del nodo o dei socket. Se si usa con una N (es. -c
N:0-6) i nuclei sono numerati in modo logico su tutto il nodo. I nuclei fisici vengono prima di tutto. Se
un sistema ad esempio ha 8 core con 16 thread SMT con -c N: 0-7 ottieni tutti i core fisici.
Se specifichi -c N:0-15 ottieni tutti i core fisici e tutti i thread SMT. Con S puoi
specificare le numerazioni logiche all'interno dei socket, ancora una volta i core fisici vengono prima. Puoi mescolare
domini diversi separati da @. Ad esempio -c S0:0-3@S2:2-3 si appunta il thread 0-3 su logico
core 0-3 sul socket 0 e thread 4-5 sui core logici 2-3 sul socket 2.

Per applicazioni in cui non è possibile utilizzare la politica del primo tocco sui sistemi numa likwid pin
può essere utilizzato per attivare il posizionamento della memoria interlacciata. Questo può accelerare notevolmente il
prestazioni di codici multithread legati alla memoria. Tutti i nodi numa a cui l'utente ha aggiunto i thread
sono usati per intercalare.

VERSIONI


-v stampa le informazioni sulla versione sullo standard output, quindi esce.

-h stampa un messaggio di aiuto sullo standard output, quindi esce.

-c OR OR <dispersione politica>
specificare un elenco numerico di processori. L'elenco può contenere più elementi,
separati da virgola e intervalli. Ad esempio 0,3,9-11. Puoi anche usare la logica
numerazioni, sia all'interno di un nodo (N), che di un socket (S ) o un dominio numerico (M ).
likwid-pin supporta anche il pin logico all'interno di un cpuset con un prefisso L. Se tu
ometti questa opzione likwid-pin collegherà i thread ai processori sul nodo
con i core fisici prima. Vedi sotto per i dettagli sull'uso di un'espressione thread o
politica di dispersione

-s
Specificare la maschera di salto come numero HEX. Per ogni bit impostato il thread corrispondente è
saltato.

-S Tutti i domini di memoria ccNUMA appartenenti all'elenco thread specificato verranno puliti
prima della corsa. Può risolvere i problemi di cache del buffer di file su Linux.

-p stampa i domini di thread disponibili per il pin logico. Se usato in combinazione
con -c, gli ID del processore fisico vengono stampati su stdout.

-i imposta la politica di memoria numa per interlacciare su tutti i nodi numa coinvolti nel pinning

-q esecuzione silenziosa senza output

-d
set delimitatore utilizzato per l'output dell'elenco dei processori fisici (-p e -c)

ESEMPIO


1. Per l'applicazione con filettatura standard:

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

Il processo padre è bloccato al processore 0. Thread 0 al processore 2, thread 1 a
processore 4, thread 2 per processore 5 e thread 3 per processore 6. Se ci sono più thread
creato rispetto a quanto specificato nell'elenco dei processori, questi thread sono fissati al processore 0 come
ricaderci.

2. Per gcc OpenMP devono essere specificati tanti id nell'elenco dei processori quanti sono i thread:

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

3. È possibile ottenere il pieno controllo del blocco specificando una maschera di salto. Per esempio
il seguente comando salta il pinning del thread 1:

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

4. L'opzione -c supporta la definizione di thread in uno specifico dominio di affinità come
Nodo NUMA o gruppo di cache. I domini di affinità disponibili possono essere recuperati con il -p
switch e nessun'altra opzione sulla riga di comando. I domini di affinità comuni sono N
(intero Nodo), SX (zoccolo X), CX (gruppo cache X) e MX (gruppo memoria X). multiplo
i domini di affinità possono essere impostati separati da @. Per collegare 2 fili su ogni presa
di un sistema a 2 prese:

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

5. Un'altra definizione di argomento dell'opzione -c consente di bloccare i thread secondo
a un'espressione come E:N:4:1:2. La sintassi è E: :
discussioni>(: : ). L'esempio pin 8 thread con 2 thread SMT per
core su una macchina SMT 4:

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

6. L'ultima alternativa per l'opzione -c è la dispersione automatica dei thread su
domini di affinità. Ad esempio per sparpagliare i thread su tutti i domini di memoria in a
sistema:

OMP_NUM_THREADS=4; likwid pin -c M: dispersione ./miaApp

Usa likwid-pin online utilizzando i servizi onworks.net



Gli ultimi programmi online per Linux e Windows