Abstrakt. Denna artikel syftar till att göra iterativ optimering praktisk och användbar genom att påskynda utvärderingen av ett stort utbud av optimeringar. Istället för att använda en full körning för att utvärdera en enda programoptimering, drar vi nytta av perioder av stabil prestanda, kallade faser. För detta ändamål föreslår vi en låg-overhead fasdetektion som är inriktad på snabb optimering av utrymme beskärning, med hjälp av kodinstrumentering och versionering som genomförs i en produktionskompilator. Vårt tillvägagångssätt drivs av enkelhet och praktiskhet. Vi visar att ett enkelt fasdetekteringssystem kan vara tillräckligt för optimering av utrymme beskärning. Vi visar också att det är möjligt att söka efter komplexa optimeringar i körtid utan att ta till sofistikerade dynamiska sammanställningsramar. Utöver iterativ optimering gör vårt tillvägagångssätt också att man snabbt kan utforma självjusterade applikationer. Med tanke på 5 representativa SpecFP2000 riktmärken, vår strategi påskyndar iterativ sökning efter de bästa programoptimeringarna med en faktor på 32 till 962. Fasförutsägelse är 99,4% korrekt i genomsnitt, med en overhead på endast 2,6%. De självjusterade genomförandena ger en genomsnittlig hastighet på 1,4.
Fursin och andra har undersökt run-time utvärdering av programoptimeringar med faskänslighet REF.
Quick and practical run-time evaluation of multiple program optimizations
{'venue': 'Transactions on High Performance Embedded Architectures and Compilation Techniques (HiPEAC', 'journal': None, 'mag_field_of_study': ['Computer Science']}