Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Can i use Peterson Lock as SMP lock??

rkmanikanta
Beginner
178 Views
Hi,
Can i use Peterson Lock as SMP Lock, if the processor doesn't support Get-and-Set instruction?
Thanks,
Mani
0 Kudos
4 Replies
Dmitry_Vyukov
Valued Contributor I
178 Views
Yes, of course. However, then hardware has to support either sequentially-consistent memory model or #StoreLoad style memory fences.
anthony_williams
Beginner
178 Views
Peterson's lock was designed for precisely this scenario. However, you need to ensure that the operations become visible to the other processors in the right order. The algorithm assumes a sequentially-consistent memory model, and on some platforms this will require memory fence operations before and/or after some of the stores and loads.

You also need to bear in mind that Peterson's lock is not a replacement for a general-purpose mutex --- each thread that tries to access the critical section must have a specific ID. The basic algorithm only works with 2 specific threads, though it is possible to extend it to more.
rkmanikanta
Beginner
178 Views
Hi,
thanks for the reply.
But how can we extend Peterson lock for N-processes?
Thanks,
Mani
Chris_M__Thomasson
New Contributor I
178 Views
This paper describes a technique to convert two-wayPeterson'slock into N-way:
http://www.google.com/url?sa=t&source=web&cd=10&ved=0CDcQFjAJ&url=http%3A%2F%2Fciteseerx.ist.psu.edu...
I think they call it a filter lock or something...
Reply