Effektivt migrera sekventiella applikationer för att dra nytta av parallellism som finns på multicore plattformar är en väl igenkänd utmaning. Detta dokument tar upp viktiga aspekter av denna fråga genom att föreslå en ny profileringsteknik för att automatiskt upptäcka tillgänglig samstämmighet i C-program. Profilören, som kallas Alchemist, arbetar helt öppet för applikationer och identifierar konstruktioner på olika nivåer av granularitet (t.ex. slingor, procedurer och villkorliga uttalanden) som kandidater för asynkront utförande. Olika beroenden, inklusive read- after-write (RAW), write-read (WAR), och write- after-write (WAW), upptäcks mellan en konstruktion och dess fortsättning, utförandet efter slutförandet av konstruktionen. Det tidsbeställda avståndet mellan programpunkter som bildar ett beroende ger ett mått på effektiviteten av parallellisering som konstruktion, samt identifiera de omvandlingar som krävs för att underlätta sådan parallellisering. Med hjälp av begreppet postdominans bygger vår profileringsalgoritm ett exekveringsindexträd vid körtid. Detta träd används för att skilja mellan flera instanser av samma statiska konstruktion, och leder till förbättrad noggrannhet i den beräknade profilen, användbart för att bättre identifiera konstruktioner som är möjliga att parallellisera. Prestandaresultat indikerar att Alchemists profiler pekar ut starka kandidater för parallellisering och kan bidra till att avsevärt lätta på bördan av applikationsmigrering till flerkärniga miljöer.
Alkemist REF är en beroendeprofileringsteknik baserad på postdominansanalys och används för att upptäcka kandidatregioner för parallell exekvering.
Alchemist: A Transparent Dependence Distance Profiling Infrastructure
{'venue': '2009 International Symposium on Code Generation and Optimization', 'journal': '2009 International Symposium on Code Generation and Optimization', 'mag_field_of_study': ['Computer Science']}