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] .
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] .
Baseret på PAPI er der implementeret adskillige softwaresystemer til undersøgelse af programmers ydeevne, især [3] :
PAPI understøtter flere processorhændelser, herunder: [3]
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.