Kompilatorn optimeringar vi möjliggör och den ordning i vilken vi tillämpar dem på ett program har en betydande inverkan på programmets genomförandetid. Compilers ger standard optimeringssekvenser som kan ge bra program speedup. Som standardsekvenser måste optimera program med olika egenskaper, de bäddas in i dem flera undersekvenser som kan optimera olika klasser av program. Dessa flera undersekvenser kan felaktigt interagera med varandra och påverka den potentiella upptrappning av programmet som kan uppnås. Istället för att söka efter en enda universell optimal sekvens kan vi konstruera en liten uppsättning bra sekvenser så att det för varje programklass finns en nästan optimal optimeringssekvens i de bra sekvenserna. Om vi kan konstruera en sådan bra sekvenser uppsättning som täcker alla programklasser i programutrymmet, då kan vi välja den bästa sekvensen för ett program genom att prova alla sekvenser i de bra sekvenser som. Detta tillvägagångssätt kringgår helt behovet av att lösa problemet med programklassificering. Med hjälp av en sekvensuppsättning storlek på cirka 10 vi fick en genomsnittlig hastighet upp till 14% på PolyBench program och upp till 12% på MiBench program. Vårt tillvägagångssätt skiljer sig helt från antingen den iterativa sammanställning eller maskininlärning-baserade förutsägelse modellering tekniker som föreslås i litteraturen hittills. Vi använder olika tränings- och testdataset för korsvalidering mot Leave-One-One-Out korsvalideringsteknik.
I samband med kompilatorer, arbetet av Purini och Jain hittar en liten uppsättning kompilatorer optimeringsset (COS), som täcker flera program REF.
Finding good optimization sequences covering program space
{'venue': 'TACO', 'journal': None, 'mag_field_of_study': ['Computer Science']}