Fördubblingen av kärnorna vartannat år kräver att programmerare exponerar maximal parallellism. Applikationer som utvecklas på dagens maskiner kommer ofta att krävas för att köra på många fler kärnor. Därför är det nödvändigt att förstå hur mycket parallellismkoder kan avslöja. Arbets- och djupmodellen ger en praktisk mental ram för att bedöma det arbete som krävs och algoritmernas maximala parallellism och deras parallella effektivitet. Vi föreslår en automatisk analys för att extrahera arbete och djup från en källkod. Vi gör detta genom att statiskt räkna antalet slingor iterationer beroende på mängden indataparametrar. Det resulterande uttrycket kan användas för att bedöma arbete och djup med avseende på programmets ingångar. Vår metod stöder den stora klassen praktiskt taget relevanta loopar med affine update-funktioner och genererar ytterligare parametrar för andra uttryck. Vi visar hur denna metod kan användas för att bestämma arbete och djup av flera verkliga tillämpningar. Vår teknik gör det möjligt för oss att bevisa om den teoretiskt maximala parallellismen exponeras i ett praktiskt genomförande av ett problem. Detta kommer att vara mycket viktigt för framtidssäker mjukvaruutveckling.
I REF föreslår författarna en automatisk analys baserad på arbets- och djupmodellen, för ett enkelt tvingande språk med explicita parallella slingor.
Automatic complexity analysis of explicitly parallel programs
{'venue': "SPAA '14", 'journal': None, 'mag_field_of_study': ['Computer Science']}