NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive for Manycore Architectures Phuong H. Ha (Univ. of Tromsø, Norway) Philippas Tsigas (Chalmers Univ., Sweden) Otto J. Anshus (Univ. of Tromsø, Norway) Presentation at OPODIS ’09 December 15-18, 2009, Nimes, France
21
Embed
NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive for Manycore Architectures
NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive for Manycore Architectures. Phuong H. Ha (Univ. of Tromsø, Norway) Philippas Tsigas (Chalmers Univ., Sweden) Otto J. Anshus (Univ. of Tromsø, Norway). Presentation at OPODIS ’09 December 15-18, 2009, Nimes, France. Problem. - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
NB-FEB: A Universal Scalable Easy-to-Use Synchronization Primitive forManycore Architectures
Phuong H. Ha (Univ. of Tromsø, Norway) Philippas Tsigas (Chalmers Univ., Sweden)Otto J. Anshus (Univ. of Tromsø, Norway)
Presentation at OPODIS ’09
December 15-18, 2009, Nimes, France
Problem Manycores require scalable strong synchronization
primitives. Conventional strong primitives do not scale well enough
for manycores [UCB Landscape]. Contention on a synchronization variable increases with
the number of processing cores.
OPODIS '09, Nimes, France
2 cores 16 cores 1000 cores
Desired features New synch. primitives for manycores should
be: Scalable
1000s of cores
Universal powerful enough to support any kind of synchronization
(like CAS, LL/SC)
Feasible able to implement in hardware
Easy-to-use
OPODIS '09, Nimes, France
Our main contributions
A novel synch. primitve with all these features
OPODIS '09, Nimes, France
• Non-blocking Full/Empty Bit (NB-FEB)• NBFEB-STM: a non-blocking STM
Road-map
NB-FEB Feasible Universal Scalable Easy-to-use
NBFEB-STM: a non-blocking STM
OPODIS '09, Nimes, France
Feasibility Key idea: slight modifications of a widely deployed primitive
A variant of the original FEB that always returns a value instead of waiting for a conditional flag
OPODIS '09, Nimes, France
Test-Flag-and-SetTFAS( x, v) { (o, flago) (x, flagx); if flagx = false then (x, flagx) (v, true); end if return (o, flago);}