PAPI

Performance Application Programming Interface ( PAPI , Performance Analysis Application Programming Interface ) er en bærbar grænseflade , implementeret som et bibliotek , til at få adgang til hardware-ydeevnetællere på forskellige moderne mikroprocessorer . Det bruges i vid udstrækning til at indsamle præstationsmålinger på lavt niveau (f.eks. antal instruktioner , cyklusser pr. instruktion , cache - misser ) på computersystemer, der kører UNIX- eller Linux - operativsystemer . PAPI-biblioteket er tilgængeligt til brug fra programmer i C, C++, Fortran, Java, Matlab [1] .

Beskrivelse

PAPI giver foruddefinerede hardwarehændelser på højt niveau til de mest almindelige processorer og direkte adgang til native hændelser på lavt niveau for mange processorer. Multipleksing af sæt tællere og kontrol overløb af tællere for at opnå et periodisk signal ( sampling ) er også understøttet . For eksempel kan biblioteket bruges til at tælle antallet af flydende kommaoperationer [2] .

Brug

Baseret på PAPI er der implementeret adskillige softwaresystemer til undersøgelse af programmers ydeevne, især [3] :

Processor support

PAPI understøtter flere processorhændelser, herunder: [3]

Understøttelse af operativsystem

Operativsystemet skal understøtte adgang til hardwaretællere, som er påkrævet for at bruge PAPI. For eksempel kan Linux/x86-kernen give adgang til tællere via en hardwareovervågningsdriverpatch ( perfctr ), via MSR-adgangsdriveren (på x86-familieprocessorer) eller via perf_events- undersystemet for at introducere PAPI-understøttelse.

Moderne Linux-kerner har tilføjet en forenklet perf_events -grænseflade til lignende formål.

Se også

Noter

  1. Philip Mucci, Performance Monitoring with PAPI Arkiveret 24. september 2016 på Wayback Machine / Dr.Dobbs, 1. juni 2005
  2. Overvågning og optimering af ATLAS offline softwareydelse / Journal of Physics: Conference Series 513 (2014) 052022 doi:10.1088/1742-6596/513/5/052022
  3. 1 2 Philip J. Mucci, An Introduction to Hardware Performance Analysis og PAPI Arkiveret 12. oktober 2016 på Wayback Machine / SIAM Parallel Processing 2004  

Litteratur

Links