1/17
Title
RACES Workshop, October 2012
How FIFO is Your Concurrent FIFO Queue?
Andreas Haas, Christoph M. Kirsch, Michael Lippautz, Hannes Payer
University of Salzburg
Title How FIFO is Your Concurrent FIFO Queue? Andreas Haas , - - PowerPoint PPT Presentation
Title How FIFO is Your Concurrent FIFO Queue? Andreas Haas , Christoph M. Kirsch, Michael Lippautz, Hannes Payer University of Salzburg RACES Workshop, October 2012 1/17 Strict vs. Relaxed FIFO Queues strict FIFO queue implementations
1/17
University of Salzburg
2/17
strict FIFO queue implementations relaxed FIFO queue implementations
2/17
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations relaxed FIFO queue implementations
2/17
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations linearizable with respect to relaxed FIFO queue semantics relaxed FIFO queue implementations
2/17
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations linearizable with respect to relaxed FIFO queue semantics relaxed FIFO queue implementations bounded
possible
2/17
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 2 10 20 30 40 50 60 70 80
number of threads LB MS FC
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations linearizable with respect to relaxed FIFO queue semantics relaxed FIFO queue implementations bounded
possible
2/17
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 2 10 20 30 40 50 60 70 80
number of threads LB MS FC US k-FIFO (k=80)
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations linearizable with respect to relaxed FIFO queue semantics relaxed FIFO queue implementations bounded
possible
2/17
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 2 10 20 30 40 50 60 70 80
number of threads 2RA Scal (p=80) LB MS FC US k-FIFO (k=80) RR Scal (p=80)
linearizable with respect to strict FIFO queue semantics strict FIFO queue implementations linearizable with respect to relaxed FIFO queue semantics relaxed FIFO queue implementations bounded
possible
3/17
3/17
4/17
time a enq b enq a deq b deq
4/17
linearization point time a enq b enq a deq b deq
4/17
linearization point time a enq b enq a deq b deq linearizable
4/17
linearization point time a enq b enq a deq b deq time a enq b enq a deq b deq linearizable
4/17
linearization point time a enq b enq a deq b deq time a enq b enq a deq b deq linearizable not linearizable
4/17
linearization point time a enq b enq a deq b deq time a enq b enq a deq b deq linearizable not linearizable
5/17
5/17
5/17
6/17
time a enq b enq a deq b deq
6/17
time a enq b enq a deq b deq
6/17
time a enq
b enq a deq b deq
6/17
time a enq
b enq a deq b deq
7/17
7/17
7/17
8/17
0.1 1 10 100 1000 1000 2000 4000 8000 16000 32000 64000 element-fairness per element (logscale, less is better) computational load (logscale) 80 threads
8/17
0.1 1 10 100 1000 1000 2000 4000 8000 16000 32000 64000 element-fairness per element (logscale, less is better) computational load (logscale) 80 threads LB MS FC
8/17
0.1 1 10 100 1000 1000 2000 4000 8000 16000 32000 64000 element-fairness per element (logscale, less is better) computational load (logscale) 80 threads LB MS FC US k-FIFO (k=80)
8/17
0.1 1 10 100 1000 1000 2000 4000 8000 16000 32000 64000 element-fairness per element (logscale, less is better) computational load (logscale) 80 threads LB MS FC US k-FIFO (k=80) RR Scal (p=80) 2RA Scal (p=80)
9/17
9/17
9/17
time a enq b enq a deq b deq
9/17
time a enq b enq a deq b deq
10/17
10/17
a enq b enq
10/17
a enq b enq
10/17
a enq b enq
11/17
11/17
11/17
12/17
1 10 100 1000 2000 4000 8000 16000 32000 64000 maximum operation-age (logscale, less is better) computational load (logscale) 80 threads LB MS FC
13/17
10 100 1000 10000 100000 1000 2000 4000 8000 16000 32000 64000 maximum operation-lateness (logscale, less is better) computational load (logscale) 80 threads LB MS FC
14/17
20 40 60 80 100 1000 2000 4000 8000 16000 32000 64000 % of enqueue operations with operation-age > 0 (less is better) computational load (logscale) 80 threads LB MS FC
15/17
20 40 60 80 100 1000 2000 4000 8000 16000 32000 64000 % of enqueue operations with operation-lateness > 0 (less is better) computational load (logscale) 80 threads LB MS FC
16/17
17/17
For more information about the queue implementations see http://scal.cs.uni-salzburg.at/ Additional measurement results can be seen on http://scal.cs.uni-salzburg.at/races12/