Att uppnå hög prestanda för samtidiga applikationer på moderna multiprocessorer är fortfarande en utmaning. Många programmerare undviker låsning för att förbättra prestanda, medan andra ersätter lås med icke-blockerande synkronisering för att skydda mot dödläge, prioritet inversion och konvojering. I båda fallen kräver dynamiska datastrukturer som undviker låsning ett system för minnesåterhämtning som återtar element när de inte längre används. Prestanda hos befintliga minnesreklameringssystem har inte utvärderats grundligt. Vi gör den första rättvisa och omfattande jämförelsen av tre nyligen genomförda system-kvalificerande-stat-baserad regenerering, epok-baserad regenerering, och risk-pekare-baserad reklamation-med hjälp av en flexibel mikrobenchmark. Våra resultat visar att det inte finns något globalt optimalt system. Vid utvärdering av låslös synkronisering bör programmerare och algoritmdesigners därför noga överväga datastrukturen, arbetsbelastningen och exekveringsmiljön, som var och en dramatiskt kan påverka minnesåterhämtningsprestandan. Vi diskuterar konsekvenserna av våra resultat för programmerare och algoritmdesigners. Slutligen beskriver vi användningen av ett system, quiscentstate-baserat reklamation, i samband med en OS-kärnan-en exekveringsmiljö som är väl lämpad för detta system.
Hart m.fl. Tillhandahålla en utmärkt jämförelsereferens för LFRC, riskpekarebaserad regenerering, epokbaserad regenerering och ljuddämpande system för regenerering av återställningsminnen.
Performance of memory reclamation for lockless synchronization
{'venue': 'J. Parallel Distributed Comput.', 'journal': 'J. Parallel Distributed Comput.', 'mag_field_of_study': ['Computer Science']}