Nya högpresterande arkitekturer förväntas innehålla opålitliga komponenter som kan uppvisa mjuka fel, som tyst korrumperar resultaten av beräkningar. Fullständig upptäckt och maskering av mjuka fel är utmanande, dyrt och, för vissa applikationer, onödigt. Till exempel, ungefärliga datorapplikationer (såsom multimedia bearbetning, maskininlärning, och big data analytics) kan ofta naturligt tolerera mjuka fel. Vi presenterar Rely, ett programmeringsspråk som gör det möjligt för utvecklare att resonera om den kvantitativa tillförlitligheten hos ett program -nämligen sannolikheten för att det ger rätt resultat när det utförs på opålitlig hårdvara. Rely gör det möjligt för utvecklare att ange tillförlitlighetskraven för varje värde som en funktion producerar. Vi presenterar en statisk kvantitativ tillförlitlighetsanalys som verifierar kvantitativa krav på en applikations tillförlitlighet, vilket gör det möjligt för en utvecklare att utföra ljud- och verifierad tillförlitlighetsteknik. Analysen tar ett Rely-program med en tillförlitlighetsspecifikation och en maskinvaruspecifikation som kännetecknar tillförlitligheten hos de underliggande hårdvarukomponenterna och verifierar att programmet uppfyller sin tillförlitlighetsspecifikation när det utförs på den underliggande opålitliga maskinvaruplattformen. Vi demonstrerar tillämpningen av kvantitativ tillförlitlighetsanalys på sex beräkningar genomförda i Rely.
Rely ger en specifikation språk som utvecklare kan använda för att ange kvantitativa tillförlitlighetskrav och en analys som verifierar att Rely program uppfyller dessa krav när körs på ungefärlig hårdvara REF.
Verifying quantitative reliability for programs that execute on unreliable hardware
{'venue': "OOPSLA '13", 'journal': None, 'mag_field_of_study': ['Computer Science']}