PAPI

Performance Application Programming Interface ( PAPI , Performance Analysis Application Programming Interface ) är ett portabelt gränssnitt , implementerat som ett bibliotek , för åtkomst till hårdvaruprestandaräknare på olika moderna mikroprocessorer . Det används ofta för att samla in prestandamått på låg nivå (t.ex. antal instruktioner , cykler per instruktion , cachemissar ) på datorsystem som kör UNIX- eller Linux - operativsystem . PAPI-biblioteket är tillgängligt för användning från program i C, C++, Fortran, Java, Matlab [1] .

Beskrivning

PAPI tillhandahåller fördefinierade hårdvaruhändelser på hög nivå för de vanligaste processorerna och direkt tillgång till inbyggda händelser på låg nivå för många processorer. Multiplexering av uppsättningar av räknare och styrning av överflöde av räknare för att erhålla en periodisk signal ( sampling ) stöds också . Till exempel kan biblioteket användas för att räkna antalet flyttalsoperationer [2] .

Användning

Baserat på PAPI har flera mjukvarusystem implementerats för att studera prestandan hos program, i synnerhet [3] :

Processorstöd

PAPI stöder flera processorhändelser, inklusive: [3]

Stöd för operativsystem

Operativsystemet måste stödja åtkomst till maskinvaruräknare, vilket krävs för att använda PAPI. Till exempel kan Linux/x86-kärnan ge åtkomst till räknare via en hårdvaruövervakningsdrivrutinpatch ( perfctr ), via MSR-åtkomstdrivrutinen (på x86-familjens processorer) eller via undersystemet perf_events för att introducera PAPI-stöd.

Moderna Linux-kärnor har lagt till ett förenklat perf_events- gränssnitt för liknande ändamål.

Se även

Anteckningar

  1. Philip Mucci, Performance Monitoring with PAPI Arkiverad 24 september 2016 på Wayback Machine / Dr. Dobbs, 1 juni 2005
  2. Övervakning och optimering av prestanda för ATLAS offlineprogramvara / 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 och PAPI Arkiverad 12 oktober 2016 på Wayback Machine / SIAM Parallel Processing 2004  

Litteratur

Länkar