La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Profiling Pompeo Faruolo. Profiling Tracciare il profilo del comportamentale di un PROCESSO in funzione delle risorse utilizzate Come il Sistema Operativo.

Presentazioni simili


Presentazione sul tema: "Profiling Pompeo Faruolo. Profiling Tracciare il profilo del comportamentale di un PROCESSO in funzione delle risorse utilizzate Come il Sistema Operativo."— Transcript della presentazione:

1 Profiling Pompeo Faruolo

2 Profiling Tracciare il profilo del comportamentale di un PROCESSO in funzione delle risorse utilizzate Come il Sistema Operativo esegue il processo

3 RisorseConteggiate Tempo Cpu Memoria IO (file, stampanti, etc..) Canali di comunicazione

4 Profiling tradizionale Il campionamento dei tempi in ambiente Unix prende come riferimento il clock di sistema Command Shell sampling time Embedded source-level sampling times(…) getitimer(…)/setitimer(…)

5 time time [-apvV] [-f format] [-o file] [--append] [-- portability] [--verbose] [--format=format] [--output- file=file] [--version] command [arg...] time esegue command, ed alla fine dellesecuzione mostra le risorse utilizzate Conteggia le risorse solo del processo lanciato escludendo i figli

6 time: statistiche dei tempi Tempo reale trascorso tra linizio del processo fino alla sua terminazione Numero totale di secondi di CPU utilizzati dal processo(in user-mode) Numero totale di secondi di CPU utilizzati dal sistema per gestire il processo(in kernel-mode) Percentuale di uso di CPU %CPU = (UserTime + SystemTime) / RealTime

7 time: statistiche della memoria Memoria media utilizzita Massima memoria utilizzata Tagli media dei dati condvisi Taglia media dei dati non-condivisi Numero di page fault Numero di context switch

8 time: statistiche dellIO Numero di file system output aperti Numero di file system input aperti Numero di messaggi su socket inviati Numero di messaggi su socket ricevuti Numero di segnali ricevuti Valore di exit del processo

9 time: esempi Processo CPU intensive for( i=0; i<300000000; i++) ; Processo IO intensive for( i=0; i<20000; i++) printf("%d\n",i); Processo MIX for( i=0; i<5000; i++) { for( j=0; j<50000; j++); printf("%d\n",j); }

10 time: esempi CPUIOMIX User3.550.022.39 System0.020.140.04 Real3.673.093.92 %CPU97%5%61% Statistiche a macchina scarica

11 time: esempi CPUIOMIX User3.440.042.54 System0.000.050.04 Real7.006.266.67 %CPU49%1%38% Statistiche rilevate con un processo CPU intensive concorrente

12 time: esempi CPUIOMIX User2.880.023.05 System0.010.020.07 Real32.5431.8435.08 %CPU8%0%8% Statistiche rilevate con 10 processi CPU intensive concorrenti

13 Profiling a livello macchina Aumentiamo il grado di dettaglio delle statistiche rilevate Registriamo come una porzione di codice interagisce con larchitettura sottostante

14 Parametri rilevati Total cycles Total instructions Floating point operations Load/store instructions Cycles functional units are idle Cycles stalled waiting for memory access waiting for resource Conditional branch instructions executed Mispredicted Cache miss

15 Hardware Performance Counter Le moderne CPU integrano questo hardware dedicato per il conteggio dellavvenimento di un particolare evento Quando un particolare evento accade viene lanciato automaticamente un segnale che incrementa il relativo registro

16 Funzionamento hardware REGISTRI CONTATORI CACHE L1 CACHE L2 BUS CPU HPC

17 Gestione HPC HPC necessitano di driver aggiuntivi perché non supportati dai sistemi operativi Questi moduli aggiuntivi costituiscono il tramite tra lhardware e lutente

18 Performance API Lo scopo di PAPI è progettare, standardizzare e implementare una interfaccia indipendente dalla piattaforma per accedere agli HPC dei vari processori

19 Funzionamento software Java Monitor GUI PAPI Low Level PAPI High Level Hardware Performance Counter Operating System Kernel Extension PAPI Machine Dependent Substrate Machine Specific Layer Portable Layer

20 PAPI high level int PAPI_num_counters(void) int PAPI_start_counters(int *events, int array_len) int PAPI_read_counters(long long *values, int array_len) int PAPI_accum_counters(long long *values, int array_len) int PAPI_stop_counters(long long *values, int array_len)

21 Latenze della mamoria (indicative) CPU register: 0 cycles L1 cache hit: 2-3 cycles L1 cache miss satisfied by L2 cache hit: 8-12 cycles L2 cache miss satisfied from main memory, no TLB miss: 75-250 cycles TLB miss requiring only reload of the TLB: ~2000 cycles TLB miss requiring reload of virtual page – page fault: hundreds of millions of cycles

22 Utilizzo HPC CPU design Monitorare politiche di scheduling di un SO Compilatori Profiling di algoritmi


Scaricare ppt "Profiling Pompeo Faruolo. Profiling Tracciare il profilo del comportamentale di un PROCESSO in funzione delle risorse utilizzate Come il Sistema Operativo."

Presentazioni simili


Annunci Google