Utvinning av hög prestanda från Chip Multiprocessorer kräver att applikationen parallelliseras. En vanlig programvara teknik för att parallellisera slingor är rörledning parallellism där programmeraren / compiler delar varje slinga iteration i etapper och varje steg körs på ett visst antal kärnor. Det är viktigt att välja antalet kärnor för varje steg noggrant eftersom den kärn-till-steg-allokering bestämmer prestanda och strömförbrukning. Att hitta den bästa kärn-till-steg-tilldelningen för en applikation är utmanande eftersom antalet möjliga tilldelningar är stort, och den bästa tilldelningen beror på inmatningsmängden och maskinkonfigurationen. I detta dokument föreslås Feedback-Directed Pipelining (FDP), en programvaruram som väljer core-to-stage allocation vid körtid. FDP maximerar först arbetsbelastningen och sparar sedan ström genom att minska antalet aktiva kärnor, utan att påverka prestandan. Vår utvärdering av ett verkligt SMP-system med två Core2Quad-processorer (8 kärnor) visar att FDP ger en genomsnittlig hastighetsökning på 4,2x vilket är betydligt högre än den 2,3x-hastighet som erhålls med en praktisk profilbaserad fördelning. Vi visar också att FDP är robust för ändringar i maskinkonfiguration och inmatningsset.
På liknande sätt, Suleman et al. REF presenterar FDP, som automatiskt bestämmer antalet trådar som tilldelas per steg vid körning.
Feedback-directed pipeline parallelism
{'venue': "PACT '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}