Home

processorienterad

Processorienterad är en term som används inom mjukvaruutveckling för att beskriva en design- och optimeringsinriktning där målet är att utnyttja de specifika egenskaperna hos den aktuella processorn, såsom instruktionsuppsättningen, cacheminne, pipeline och minneshierarki. Syftet är att uppnå bästa möjliga prestanda genom att anpassa kod och datastrukturer till hur processorn exekverar instruktioner och hämtar data.

Vanliga metoder inkluderar att skriva cachevänlig kod, minimera grenstruktur och oregelbundet kontrollflöde, använda loop-tiling och datastrukturer

Termen står ofta i kontrast till dataorienterad optimering. Fördelarna kan vara mycket stora på en viss hårdvaruplattform,

Användningsområden finns inom högpresterande beräkningar, realtidssystem och prestandakritiska bibliotek samt inbyggda system där hårdvarukarakteristika är tydliga.

som
passar
cachelinjer,
utnyttja
SIMD-
eller
vectorenheter
samt
använda
kompilatorintrinsics
eller
handoptimerad
assembler
för
att
vägleda
instruktionsplanering.
I
praktiken
innebär
processorienterad
optimering
ofta
att
profilera
koden
för
att
identifiera
flaskhalsar
på
mikronivå
snarare
än
endast
algoritmisk
ineffektivitet.
men
den
kan
ge
sämre
portabilitet
mellan
olika
processorer
och
ökad
underhållsbelastning.
Därför
kombineras
ofta
processorienterad
optimering
med
övergripande
arkitektur-
eller
algoritmöverväganden
för
att
uppnå
en
balans
mellan
prestanda
och
portabilitet.
För
att
analysera
processorienterad
prestanda
används
verktyg
som
profilerare
och
analysverktyg
som
mäter
cachemissar,
grenprediktion
och
vektoriseringseffektivitet.