Sammanfattning Många forskare har utvecklat applikationer med hjälp av transaktionsminne (TM) med syfte att jämföra olika implementationer, och studera om TM är lätt att använda eller inte. Men jämförelsevis lite har gjorts för att tillhandahålla allmänna verktyg för profilering och optimering av program som använder transaktioner. I detta dokument introducerar vi en serie profilerings- och optimeringstekniker för TM-applikationer. Profileringstekniker är av tre typer: (i) tekniker för att identifiera flera potentiella konflikter från en enda program kör, (ii) tekniker för att identifiera datastrukturer som är inblandade i konflikter genom att använda en symbolisk väg genom högen, snarare än en maskin adress, och (iii) visualisering tekniker för att sammanfatta hur trådar tillbringar sin tid och vilken av deras transaktioner konflikter oftast. Sammantaget ger de djupgående och omfattande information om det bortkastade arbete som orsakas av att transaktioner avbryts. För att minska tvistefrågan mellan transaktioner föreslår vi flera TM-specifika optimeringar som utnyttjar inbäddade transaktioner, transaktionskontrollpunkter, tidig release och etc. För att undersöka effektiviteten i profilerings- och optimeringsteknikerna tillhandahåller vi en serie illustrationer från STAMP TM-riktmärkessviten och från den syntetiska WormBench-arbetsbelastningen. Först analyserar vi prestandan hos TM-applikationer med hjälp av våra profileringstekniker och sedan tillämpar vi olika optimeringar för att förbättra prestandan hos Bayes, Labyrint och Intruder-applikationer. Vi diskuterar design och implementering av profileringstekniker i Bartok-STM-systemet. Vi behandlar data offline eller under sophämtning, där så är möjligt, för att minimera sondeffekten som introduceras genom profilering.
REF introducerar transaktionsprofileringstekniker för att identifiera flera potentiella konflikter från en enda programkörning och de datastrukturer som är inblandade i konflikter.
Profiling and Optimizing Transactional Memory Applications
{'venue': 'International Journal of Parallel Programming', 'journal': 'International Journal of Parallel Programming', 'mag_field_of_study': ['Computer Science']}