Profilering och onlineanalys är viktiga uppgifter inom programförståelse och återkopplingsstyrd optimering. Finkornig profilering och online analys tenderar dock att allvarligt sakta ner ansökan. För att klara av avmattningen kan man bli tvungen att avsluta processen på ett tidigt stadium eller ta till provtagning. Den förstnämnda tenderar att snedvrida resultatet på grund av uppvärmningseffekter. Den senare löper risk att missa viktiga effekter eftersom provtagningen stängdes av under den tid som dessa effekter uppträdde. Ett lovande tillvägagångssätt är att utnyttja den parallella bearbetningskapaciteten hos de nu allestädes närvarande multicoreprocessorerna för att påskynda profilerings- och analysprocessen. I den här artikeln presenterar vi Pipelined Profiling and Analysis (PiPA), som är en ny teknik för parallellisering av dynamisk programprofilering och analys genom att dra nytta av multicoresystem. I huvudsak är ansökan under granskning profilerad med hjälp av ett dynamiskt instrumenteringsverktyg. Optimerad instrumentkod ger profilinformationen i ett koncist format, som vi kallar REP-formatet, till buffertar. Detta lätta spår kompression minimerar bearbetning overhead imping på applikationen när en buffert är full. En annan tråd återvinner den information som krävs från REP-bufferten. Den återvunna fullständiga profilen delas sedan upp och överförs till flera trådar för ytterligare analys. För att uppnå bästa prestanda måste hela systemet vara välbalanserat. Vi har implementerat prototyper av PiPA med hjälp av två dynamiska instrumentsystem, nämligen DynamoRIO och Pin, och därmed demonstrerat dess bärbarhet. Våra experiment visar att PiPA kan påskynda de övergripande profilerings- och analysuppgifterna avsevärt. Jämfört med mer än 100× avmattning av Cachegrind och 32× avmattning av Pin fcache, uppnådde vi en endast 10.2× avmattning på en 8-kärna system. I detta dokument kommer vi också att beskriva de insikter vi fick i att få den balans som behövs för att PiPA ska fungera optimalt.
Zhao m.fl. REF introducerar PiPA, ett rörformat profilerings- och analysverktyg för parallellisering av dynamiska instrument på flerkärniga plattformar.
PiPA: Pipelined profiling and analysis on multicore systems
{'venue': 'TACO', 'journal': None, 'mag_field_of_study': ['Computer Science']}