-
Intel VTune Profiler
Intel VTune Profiler
Intel VTune Profiler on suorituskyvyn analysointityökalu yhden ytimen ja säikeistyksen suorituskyvyn analysointiin, eli yhden laskentasolmun suorituskyvyn tarkasteluun. MPI-analyysissä useilla solmuilla VTune tuottaa erillisen analyysin jokaiselle solmulle. Kattavampi MPI-suorituskyvyn analyysi on mahdollista esimerkiksi Intel Traceanalyzerilla tai Scalascalla.
Saatavuus
Puhti: 2022.3
Lisenssi
Käyttö on mahdollista sekä akateemisiin että kaupallisiin tarkoituksiin.
Käyttö
Intel VTune Profiler on saatavilla intel-oneapi-vtune-moduulin kautta. Ympäristö otetaan käyttöön lataamalla moduuli:
Jos haluat saada tietoa lähdekooditasolla, käännä koodisi virheenkorjaustiedot sisältävällä valinnalla -g.
Tulosten kerääminen
Suorituskyvyn analysointi voidaan käynnistää joko VTunen graafisesta käyttöliittymästä tai VTunen komentorivityökalulla. HPC-järjestelmissä käytetään tavallisesti komentorivityökalua vtune bash-työssä. Ensimmäinen analyysi, jota suosittelemme kokeilemaan, on "performance snapshot". Tässä on esimerkkieräajotyön skripti, jota voidaan käyttää sen keräämiseen
(muokkaa skriptiä sovelluksesi ja projektisi mukaiseksi!):
#!/bin/bash
#SBATCH --job-name=VTune_example
#SBATCH --account=<project_name>
#SBATCH --partition=small
#SBATCH --time=00:15:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=20
#SBATCH --mem-per-cpu=4000
# set the number of threads based on --cpus-per-task
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
module load intel-oneapi-vtune
srun vtune -collect performance-snapshot -- ./my_application
Oletuksena VTune kirjoittaa analyysin tulokset hakemistoon nimeltä r000ps nykyisen työhakemiston sisällä. Numero kasvaa automaattisesti, kun keräyksiä suoritetaan useita. Kaksi viimeistä kirjainta viittaavat analyysityyppiin. Voit käyttää myös mukautettua tuloshakemistoa valinnalla -r results_dir_name.
Kun analysoidaan MPI-sovelluksia (ja ajetaan useilla MPI-tehtävillä), tulee lisätä valinta -trace-mpi:
#SBATCH ...
srun vtune -collect performance-snapshot --trace-mpi -r results_dir_name -- ./my_application
MPI-töissä profilointityökalu luo erillisen hakemiston jokaiselle solmulle. Kerättävän datan määrän vähentämiseksi dataa voidaan kerätä vain osajoukolta tehtäviä käynnistämällä VTune kääreskriptin sisältä:
#SBATCH ...
export VTUNE_CL="vtune -collect performance-snapshot -trace-mpi -result-dir results_dir_name --"
cat << EOF > vtune_wrapper
#!/bin/bash
# Launch VTune only for one MPI rank per node
if [ $SLURM_LOCALID -eq 0 ]
then
exec $VTUNE_CL \$*
else
exec \$*
fi
EOF
chmod +x ./vtune_wrapper
srun ./vtune_wrapper ./my_application
rm -rf ./vtune_wrapper
Tulosten analysointi komentorivillä
Komentorivityökalua voidaan käyttää raporttien luomiseen kerätyistä tuloksista valinnalla -report:
Tulokset tulostetaan vakiotulosteeseen tai tiedostoon valinnalla -report-output output_filename.
VTune tukee suurta määrää erilaisia raportteja, esim. "hotspots", "hardware events", ja on myös mahdollista vertailla kahden raportin välisiä eroja:
Oletuksena raportin aika ryhmitellään funktioittain, mutta se voidaan ryhmitellä myös lähdekoodiriveittäin (-group-by source-line) tai moduuleittain (-group-by module).
Lopuksi on mahdollista näyttää kutsupinojen CPU-aika (-report callstacks) tai näyttää kutsupuu ja esittää CPU-aika kullekin funktiolle (-report top-down).
Tulosten analysointi graafisella käyttöliittymällä
Tuloksia voidaan tarkastella vtune-gui-sovelluksella, jonka suosittelemme käynnistämään Desktop-sovelluksen kautta Puhdin selainkäyttöliittymässä. Voit myös kopioida koko tuloshakemiston työasemallesi paikallista analyysiä varten.
Tietty tulosjoukko voidaan avata antamalla tuloshakemiston nimi argumenttina komennolle vtune-gui:
Tunnetut ongelmat
Joskus vtune-gui ei käynnisty ja antaa virheen "Failed to launch VTune Amplifier GUI...". Jos näin tapahtuu, tulee lopettaa kaikki jäljelle jääneet VTune-prosessit ja yrittää uudelleen: