Problem Statement Fred Runtime Evaluation Wrap Up
User-level Threading: Have Your Cake and Eat It Too
Martin Karsten and Saman Barghi
David R. Cheriton School of Computer Science University of Waterloo
June 2020
SIGMETRICS 2020 1/27
User-level Threading: Have Your Cake and Eat It Too Martin Karsten - - PowerPoint PPT Presentation
Problem Statement Fred Runtime Evaluation Wrap Up User-level Threading: Have Your Cake and Eat It Too Martin Karsten and Saman Barghi David R. Cheriton School of Computer Science University of Waterloo June 2020 SIGMETRICS 2020 1/27
Problem Statement Fred Runtime Evaluation Wrap Up
David R. Cheriton School of Computer Science University of Waterloo
SIGMETRICS 2020 1/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 2/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 2/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 2/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 2/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 3/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 3/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 3/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 4/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 4/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 4/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 5/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 6/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 6/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 7/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 7/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 8/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 9/27
Problem Statement Fred Runtime Evaluation Wrap Up
Processor 3 Processor 1 Processor 2 Ready−Queue 2 Ready−Queue 3 Staging−Queue Ready−Queue 1 waiting processors "processor ready−stack" fred counter benaphore P() V() processor ring (for stealing)
SIGMETRICS 2020 10/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 11/27
Problem Statement Fred Runtime Evaluation Wrap Up
epoll/kqueue
interest set
SIGMETRICS 2020 12/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 13/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 14/27
Problem Statement Fred Runtime Evaluation Wrap Up
2 4 6 8 10 5 10 15 20 25 30 35 40 Throughput x107 (32 Cores) Duration of Each Work Unit (us) Libfiber Qthreads Fred Pthread Go Boost Arachne Mordor uC++
SIGMETRICS 2020 15/27
Problem Statement Fred Runtime Evaluation Wrap Up
50 100 150 200 250 300 5 10 15 20 25 30 Cost of Iteration (us) Core Count Libfiber Qthreads Fred Pthread Go Boost Arachne Mordor uC++
SIGMETRICS 2020 16/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 17/27
Problem Statement Fred Runtime Evaluation Wrap Up
200 400 600 800 1000 1200 1400 1600 5 10 15 20 25 30 Request Throughput (x1000/sec) Cores ULib Fred (8 poller freds) Pthread Go uC++
SIGMETRICS 2020 18/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 19/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 19/27
Problem Statement Fred Runtime Evaluation Wrap Up
100 200 300 400 500 600 700 800 2 4 6 8 10 12 14 16 Query Throughput (x1000/sec) Cores Fred Vanilla Pthread Arachne Fred (shared RQ)
SIGMETRICS 2020 20/27
Problem Statement Fred Runtime Evaluation Wrap Up
100 200 300 400 500 600 700 2 4 6 8 10 12 14 16 Query Throughput (x1000/sec) Cores Fred Vanilla Pthread Fred (shared RQ) Arachne
SIGMETRICS 2020 21/27
Problem Statement Fred Runtime Evaluation Wrap Up
10 100 1000 10000 200 400 600 800 1000 Read Latency (us), 99th Percentile Query Throughput (x1000) Vanilla (pin/rfs) Fred (pin) Arachne Pthread (rfs)
SIGMETRICS 2020 22/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 23/27
Problem Statement Fred Runtime Evaluation Wrap Up
10 100 1000 10000 200 400 600 800 1000 Read Latency (us), 99th Percentile Query Throughput (x1000) Vanilla (pin) Fred (pin) Arachne Pthread
SIGMETRICS 2020 24/27
Problem Statement Fred Runtime Evaluation Wrap Up
10 100 1000 10000 100000 100 200 300 400 500 600 700 800 900 Read Latency (us), 99th Percentile Query Throughput (x1000) Vanilla (pin) Fred (pin) Arachne Pthread
SIGMETRICS 2020 25/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 26/27
Problem Statement Fred Runtime Evaluation Wrap Up
SIGMETRICS 2020 27/27