Eftersom multicoreprocessorer är utplacerade i mainstream computing, ökar behovet av programvaruverktyg för att hjälpa parallellisera program dramatiskt. Databeroendeprofilering är en viktig teknik för att utnyttja parallellism i program. Mer specifikt, manuell eller automatisk parallellisering kan använda resultaten av databeroende profilering för att vägleda var att parallellisera i ett program. De senaste teknikerna för profilering av databeroende är dock inte skalbara eftersom de lider av två stora problem vid profilering av stora och långdragna applikationer: 1) overhead för drift och 2) overhead för minne. Befintliga databeroende profilerare kan antingen inte profilera storskaliga tillämpningar eller bara rapportera mycket begränsad information. I detta dokument föreslår vi en skalbar strategi för databeroendeprofilering som tar upp både drifttid och omkostnader för minne i ett enda ramverk. Vår teknik, som kallas SD 3, minskar runtime overhead genom att parallellisera beroendeprofileringen själv. För att minska minnet overhead komprimerar vi minnesåtkomster som uppvisar stegmönster och beräknar databeroende direkt i ett komprimerat format. Vi visar att SD 3 minskar drifttiden overhead vid profilering SPEC 2006 med en faktor på 4,1× och 9,7× på åtta kärnor respektive 32 kärnor. För minnet overhead profilerar vi SPEC 2006 med referensinmatningen, medan de tidigare tillvägagångssätten misslyckas även med tågingången. I vissa fall observerar vi mer än en 20× förbättring i minnesförbrukning och en 16× speedup i profileringstid när 32 kärnor används.
Algoritmen, som kallas SD 3 REF, uppvisar stegmönster och beräknar databeroenden direkt i ett komprimerat format.
SD3: A Scalable Approach to Dynamic Data-Dependence Profiling
{'venue': '2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture', 'journal': '2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture', 'mag_field_of_study': ['Computer Science']}