Skip to content

Monitoring and reducing the Energy Consumption of numerical algorithms with the PAPI library

License

Notifications You must be signed in to change notification settings

RiccardoEvangelisti/Monitoraggio-IMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monitoraggio-IMe

Monitoraggio energetico di algoritmi numerici tramite la libreria PAPI

PREREQUISITI (leggere interamente prima di proseguire)

  • Installare il tool Linux "perf"

  • Installare PAPI. Seguire l'installazione guidata [https://bitbucket.org/icl/papi/wiki/Downloading-and-Installing-PAPI]

  • Eseguire nella configurazione di installazione i componenti RAPL e POWERCAP:

    • ./configure --with-components="rapl powercap"
    • IMPORTANTE: eseguire il comando da dentro la cartella papi/src !!!
  • Impostare la variabile d'ambiente PAPI_DIR al percorso: papi/src/install/

  • Installare il tool gnuplot, necessario per generare i grafici.

  • Assicurarsi con papi/src/utils/papi_avail che ci siano eventi disponibili. Se nessun evento tra i preset events è disponibile per l'uso, o qualcosa è andato storto nell'installazione o la CPU non supporta/permette la lettura degli eventi.

  • Eseguire tutte le azioni come root oppure impostare a zero il /proc/sys/kernel/perf_event_paranoid

  • Assicurarsi che con papi/src/utils/papi_component_avail tutti i componenti siano correttamente abilitati

UTILIZZO

  • In src/main è contenuto un semplice main che esegue IMe prendendo i dati iniziali da linea di comando

  • In src/tests si trovano i programmi di test di IMe, nella verisone a campionamento ogni 0.1 secondi e a campionamento unico.

  • Per eseguire il programma di test di IMe, si utilizzi lo script bin/tests/plot.sh (eseguirlo a vuoto o con "-h" per vedere le opzioni)

  • Per eseguire TUTTI i test nelle varie combinazini possibili, si utilizzi lo script bin/tests/ALL_TESTS.sh

    • ATTENZIONE: i test che impostano limiti di potenza sulla CPU ripristinano le impostazioni di default solo al termine dell'esecuzione. Dunque è importante non terminare a metà tali test. Si consulti l'output generato su stdout per monitorare l'andamento.
  • In src/utils sono presenti altri programmi tratti da esempi disponibili nella documentazione di PAPI (questi non monitorano IMe ma codice di esempio):

    • In src/utils/START_PAPI_PROGRAM/ è presente uno script che facilita la compilazione di un programma PAPI.
      • ATTENZIONE: alcuni programmi utilizzano funzioni definite in papi/src/install/share/papi/testlib/do_loops.c. La libreria corrisponente è disponibile qui in src/utils/START_PAPI_PROGRAM/ e bisogna spostarla in papi/src/install/share/papi/testlib
    • In src/utils/papi_high_level viene mostrato come si utilizza l'interfaccia ad alto livello di PAPI
      • Per semplificare e ordinare l'output si utilizzi start_papi_program.sh citato sopra
    • In src/utils/papi_low_level viene mostrato come si utilizzano le funzioni di basso livello di PAPI
    • In src/utils/powercap sono presenti programmi che mostrano il funzionamento del componente POWERCAP
    • In src/utils/rapl sono presenti programmi che mostrano il funzionamento del componente RAPL
    • In src/utils/appio sono presenti programmi che mostrano il funzionamento del componente APPIO

About

Monitoring and reducing the Energy Consumption of numerical algorithms with the PAPI library

Topics

Resources

License

Stars

Watchers

Forks