SlideShare a Scribd company logo
1 of 52
Download to read offline
Lockless Programming
Tomasz Barański
IBM Research
Me
Making software for 15 years
IBM Research @ KRK
Lockless?
Programming with multiple threads that access
shared memory and threads cannot block
each other.
Why?
And also
(Dead|Live)locks
Priority inversion
Lock convoy
How?
Atomic operations Memory barriers
Atomic operations Memory barriers
( τομοςἄ indivisible)
Atomic operations Memory barriers
CAS FAA|AAF
Atomic operations Memory barriers
CAS FAA|AAF
LoadLoad LoadStore
StoreLoad StoreStore
Compare-And-Swap
cas(val, old, new) =
if val == old
val = new
return SUCCESS
else
return FAIL
Fetch-And-Add
faa(val, i) =
tmp = val
val += i
return tmp
Sequential consistency
acqiure lock
read X
read Y
(…)
store Y
store X
release lock
Pseudo-assembly
acqiure lock
read X
read Y
(…)
store Y
store X
release lock
acqiure lock
read Y
(…)
store X
(...)
read X
(...)
store Y
release lock
reordering
compiler
(JVM)
CPU
read Y
(…)
store X
(...)
read X
(...)
store Y
read Y
(…)
store X
(...)
read X
(...)
store Y
Thread 2Thread 1
What are X and Y?
Sequential consistency
All threads (on all CPUs) agree on order of all
memory operations, and the order is consistent
with the operations order in the source code.
Memory barriers
read X
LoadLoad Barrier
read Y
(…)
store Y
store X
read X
(…)
store X
(...)
read Y
(...)
store Y
reordering
compiler
(JVM)
CPU
read X
read Y
(…)
store Y
StoreStore Barrier
store X
read Y
(…)
store Y
(...)
read X
(...)
store X
reordering
compiler
(JVM)
CPU
read X
read Y
(…)
LoadStore Barrier
store Y
store X
read Y
(…)
read X
(…)
store X
(...)
store Y
reordering
compiler
(JVM)
CPU
store X
store Y
(…)
StoreLoad Barrier
read X
read Y
store Y
(…)
store X
(…)
read X
(...)
read Y
reordering
compiler
(JVM)
CPU
Full barrier
Let's get practical!
Lock-free (FIFO) queue
(by John D. Valois)
enqueue(x) =
acquire(lock)
q = new Node
q.value = x
q.next = NULL
tail.next = q
tail = q
release(lock)
enqueue(x) =
acquire(lock)
q = new Node
q.value = x
q.next = NULL
tail.next = q
tail = q
release(lock)
enqueue(x) =
acquire(lock)
q = new Node
q.value = x
q.next = NULL
tail.next = q
tail = q
release(lock)
enqueue(x) =
q = new Node
q.value = x
q.next = NULL
do
p = tail
succ = CAS(p.next, NULL, q)
if !succ
CAS(tail, p, p.next)
while !succ
CAS(tail, p, q)
enqueue(x) =
q = new Node
q.value = x
q.next = NULL
do
p = tail
succ = CAS(p.next, NULL, q)
if !succ
CAS(tail, p, p.next)
while !succ
CAS(tail, p, q)
dequeue() =
do
p = head
if p.next == NULL
error QUEUE_EMPTY
while !CAS(head, p, p.next)
return p.next.value
Never waits
Never blocks
Silver bullet?
More difficult
ABA problem
Solution?
Tagged reference
Intermediate nodes
LL/SC
Load-Link / Store-Conditional
Separates storage has value
from storage has been changed.
PowerPC, ARM
but NOT: x86, SPARC
LoadLink(x) =
read(x)
mark(x)
StoreConditional(x) =
if x marked
store(x)
unmark(x)
return SUCCESS
else
return FAILURE
Language support
C (gcc)
__sync_fetch_and_add (_sub, _or...)
__sync_add_and_fetch (_sub, _or...)
__sync_bool_compare_and_swap
__sync_val_compare_and_swap
__sync_synchronize
C++11
#include <atomic>
template <class T> struct atomic;
atomic_thread_fence(...)
::store(...)
::load(...)
::compare_exchange(...)
::fetch_add(...)
Java
java.util.concurrent.atomic
AtomicInteger
.addAndGet
.getAndAdd
.compareAndSet
AtomicIntegerArray
AtomicReference
AtomicStampedReference
?

More Related Content

Viewers also liked

Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...PROIDEA
 
CONFidence 2015: Abusing apns for profit - Karol Wiesek
CONFidence 2015: Abusing apns for profit - Karol WiesekCONFidence 2015: Abusing apns for profit - Karol Wiesek
CONFidence 2015: Abusing apns for profit - Karol WiesekPROIDEA
 
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...PROIDEA
 
PLNOG15: Is there something less complicated than connecting two LAN networks...
PLNOG15: Is there something less complicated than connecting two LAN networks...PLNOG15: Is there something less complicated than connecting two LAN networks...
PLNOG15: Is there something less complicated than connecting two LAN networks...PROIDEA
 
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...PROIDEA
 
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...PROIDEA
 
CONFidence 2014: Kiss, Zagon, Sseller: Scaling security
CONFidence 2014: Kiss, Zagon, Sseller: Scaling securityCONFidence 2014: Kiss, Zagon, Sseller: Scaling security
CONFidence 2014: Kiss, Zagon, Sseller: Scaling securityPROIDEA
 
PLNOG15: G-IKEv2 - Salah Gherdaoui, Praveena Shanubhogue
PLNOG15: G-IKEv2 - Salah Gherdaoui,  Praveena Shanubhogue PLNOG15: G-IKEv2 - Salah Gherdaoui,  Praveena Shanubhogue
PLNOG15: G-IKEv2 - Salah Gherdaoui, Praveena Shanubhogue PROIDEA
 
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...PROIDEA
 
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...PROIDEA
 
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsCONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsPROIDEA
 
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovCONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovPROIDEA
 
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...PROIDEA
 
JDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
JDD2014: Strategiczna refaktoryzacja - Michał BartyzelJDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
JDD2014: Strategiczna refaktoryzacja - Michał BartyzelPROIDEA
 

Viewers also liked (15)

Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
 
CONFidence 2015: Abusing apns for profit - Karol Wiesek
CONFidence 2015: Abusing apns for profit - Karol WiesekCONFidence 2015: Abusing apns for profit - Karol Wiesek
CONFidence 2015: Abusing apns for profit - Karol Wiesek
 
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...
CONFidence 2015: CaaS (Crime-as-a-Service) – czy każdy może zostać cyberprzes...
 
PLNOG15: Is there something less complicated than connecting two LAN networks...
PLNOG15: Is there something less complicated than connecting two LAN networks...PLNOG15: Is there something less complicated than connecting two LAN networks...
PLNOG15: Is there something less complicated than connecting two LAN networks...
 
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
PLNOG15: Implementation of integrated DDI/NAC solution for a health insurance...
 
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...
PLNOG15: Operator 2025 – opportunities and risks in the brave new world of IC...
 
CONFidence 2014: Kiss, Zagon, Sseller: Scaling security
CONFidence 2014: Kiss, Zagon, Sseller: Scaling securityCONFidence 2014: Kiss, Zagon, Sseller: Scaling security
CONFidence 2014: Kiss, Zagon, Sseller: Scaling security
 
PLNOG15: G-IKEv2 - Salah Gherdaoui, Praveena Shanubhogue
PLNOG15: G-IKEv2 - Salah Gherdaoui,  Praveena Shanubhogue PLNOG15: G-IKEv2 - Salah Gherdaoui,  Praveena Shanubhogue
PLNOG15: G-IKEv2 - Salah Gherdaoui, Praveena Shanubhogue
 
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...
PLNOG15: Lego Bricks - How to use Amazon Services to create a lovely product ...
 
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...
CONFidence 2015: Lessons from DevOps: Taking DevOps practices into your AppSe...
 
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsCONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
 
Macro economics
Macro economicsMacro economics
Macro economics
 
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovCONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
 
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
Atmosphere Conference 2015: Oktawave Horizon Project: the future of real-time...
 
JDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
JDD2014: Strategiczna refaktoryzacja - Michał BartyzelJDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
JDD2014: Strategiczna refaktoryzacja - Michał Bartyzel
 

Similar to Atmosphere 2014: Lockless programming - Tomasz Barański

Prolog 01
Prolog 01Prolog 01
Prolog 01saru40
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Ontico
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using ScalaSiarhiej Siemianchuk
 
Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Mirco Vanini
 
[ENG] Hacktivity 2013 - Alice in eXploitland
[ENG] Hacktivity 2013 - Alice in eXploitland[ENG] Hacktivity 2013 - Alice in eXploitland
[ENG] Hacktivity 2013 - Alice in eXploitlandZoltan Balazs
 
The State of Lightweight Threads for the JVM
The State of Lightweight Threads for the JVMThe State of Lightweight Threads for the JVM
The State of Lightweight Threads for the JVMVolkan Yazıcı
 
Beauty and the beast - Haskell on JVM
Beauty and the beast  - Haskell on JVMBeauty and the beast  - Haskell on JVM
Beauty and the beast - Haskell on JVMJarek Ratajski
 
play framework async with scala
play framework async with scalaplay framework async with scala
play framework async with scalavuhaininh88
 
Introduction to Scala : Clueda
Introduction to Scala : CluedaIntroduction to Scala : Clueda
Introduction to Scala : CluedaAndreas Neumann
 

Similar to Atmosphere 2014: Lockless programming - Tomasz Barański (13)

Prolog 01
Prolog 01Prolog 01
Prolog 01
 
Kotlin Coroutines and Rx
Kotlin Coroutines and RxKotlin Coroutines and Rx
Kotlin Coroutines and Rx
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using Scala
 
opt-mem-trx
opt-mem-trxopt-mem-trx
opt-mem-trx
 
Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !
 
[ENG] Hacktivity 2013 - Alice in eXploitland
[ENG] Hacktivity 2013 - Alice in eXploitland[ENG] Hacktivity 2013 - Alice in eXploitland
[ENG] Hacktivity 2013 - Alice in eXploitland
 
The State of Lightweight Threads for the JVM
The State of Lightweight Threads for the JVMThe State of Lightweight Threads for the JVM
The State of Lightweight Threads for the JVM
 
Beauty and the beast - Haskell on JVM
Beauty and the beast  - Haskell on JVMBeauty and the beast  - Haskell on JVM
Beauty and the beast - Haskell on JVM
 
Erlang FTW!
Erlang FTW!Erlang FTW!
Erlang FTW!
 
play framework async with scala
play framework async with scalaplay framework async with scala
play framework async with scala
 
Scala
ScalaScala
Scala
 
Introduction to Scala : Clueda
Introduction to Scala : CluedaIntroduction to Scala : Clueda
Introduction to Scala : Clueda
 

Recently uploaded

SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfakankshagupta7348026
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 

Recently uploaded (20)

SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdf
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 

Atmosphere 2014: Lockless programming - Tomasz Barański