About

Performance Tests

This page contains the results of performance tests on all the presented approaches, and how to interpret them. For each algorithm multiple simulation runs are averaged to come up with individual scores. This is also done for each of the four distributions, since algorithm performance is very different depending on which distribution is used.

Degree of concurrency

The concurrency score (CS) is calculated by averaging several simulation runs, in this case 20. For simulation runs with 5 philosophers, scores close to two indicate ideal concurrency, while those under one indicate no concurrency. Since concurrent performance also depends heavily on the chosen distribution, the concurrency scores from the different distributions are averaged. Four classes are used to classify algorithms according to this Average Concurrency Score:

Average Concurrency Score (Average CS) Ranges
No Concurrency0 - 1.0
Moderate Concurrency1.0 - 1.5
Good Concurrency1.5 - 1.7
High Concurrency1.7 - 2.0

Fairness

The two scores for eat-chance fairness, and eat-time fairness are again obtained by averaging several simulation runs.

FS Fairness Score
ECFSEat Chance Fairness Score
ETFSEat Time Fairness Score

As both metrics are standard deviations of philosophers eat-chances or eat-times lower values indicate better fairness. Algorithm improvements are calculated in percentage decrease of standard deviation compared to the base versions of fairness enhancing algorithms. Fair Waiter is compared to Pickup Permission Waiter, Fair Tanenbaum is compared to Tanenbaum, The Circulating Token, and Restrict Token algorithms are compared to the Naive approach. Improvements above 20% can be interpreted as being significant.

Test Results

Interval Distribution: Lower Bound = 30 ms, Upper Bound = 300 ms
Runs per algorithm: 20
Simulation time: 2000 time steps
Number of Philosophers: 5
Algorithm CS ECFS ETFS FS Improvement
Naive1.32590.884149.9816
Hierarchy1.70622.000774.0217
Asymmetric1.73981.953770.3715
Global Token0.98190.371540.312557.98% ECFS
Multiple Token1.66600.396653.268155.14% ECFS
Timeout (200 ms)1.70971.355457.9897
Instant Timeout1.74801.362055.2102
Eat Permission Waiter0.98960.565743.3324
Pickup Permission Waiter1.43710.921247.2592
Intelligent Waiter1.55801.057442.1599
Fair Eat-Time Waiter1.48081.297722.909051.53% ETFS
Fair Eat-Chance Waiter1.47370.383147.303958.42% ECFS
Two Waiters1.64211.627170.4407
Restrict Waiter1.45410.832551.4794
Table Semaphore1.42320.740052.9547
Restrict1.35840.867745.6994
Tanenbaum1.80701.396657.9705
Fair Eat-Time Tanenbaum1.81791.361158.6103
Fair Eat-Chance Tanenbaum1.80401.316854.50715.71% ECFS
Chandy-Misra1.68900.950751.7728
Eat-Chance Restrict Token1.59820.442562.590050% ECFS
Eat-Time Restrict Token1.65091.640428.744142.5% ETFS

Deterministic Distribution: delay = 100 ms
Runs per algorithm: 20
Simulation time: 2000 time steps
Number of Philosophers: 5
Algorithm CS ECFS ETFS FS Improvement
Naive1.13260.022.448
Hierarchy1.96470.989218.255
Asymmetric1.96651.264323.046
Global Token0.98470.00002.026100% ECFS
Multiple Token1.96730.15804.668
Timeout1.95560.26056.093
Instant Timeout1.81620.759513.929
Eat Permission Waiter0.98410.00002.324
Pickup Permission Waiter1.70220.38637.854
Intelligent Waiter1.90970.38767.688
Fair Eat-Time Waiter1.60650.35156.84912.8% ETFS
Fair Eat-Chance Waiter1.67680.35216.7498.85% ECFS
Two Waiters1.87873.727767.677
Restrict Waiter1.73780.575911.406
Table Semaphore1.63650.44057.834
Restrict1.47510.04453.309
Tanenbaum1.96671.000218.288
Fair Eat-Time Tanenbaum1.96641.089619.660
Fair Eat-Chance Tanenbaum1.96711.358724.507
Chandy-Misra1.91500.34905.045
Eat-Chance Restrict Token1.92820.35927.490
Eat-Time Restrict Token1.94020.40498.179

Normal Distribution: μ = 100, σ = 50
Runs per algorithm: 20
Simulation time: 2000 time steps
Number of Philosophers: 5
Algorithm CS ECFS ETFS FS Improvement
Naive1.30761.055034.4418
Hierarchy1.71933.102563.2627
Asymmetric1.72953.658650.0086
Global Token0.97920.287028.623672.8% ECFS
Multiple Token1.67130.442544.813158.08% ECFS
Timeout(200 ms)1.59601.831938.2872
Instant Timeout1.67392.336135.7533
Eat Permission Waiter0.98930.558831.0267
Pickup Permission Waiter1.46100.945838.3785
Intelligent Waiter1.59231.098138.2553
Fair Eat-Time Waiter1.48571.776015.196160.4% ETFS
Fair Eat-Chance Waiter1.46520.539937.759542.92% ECFS
Two Waiters1.64782.590060.8600
Restrict Waiter1.44681.009339.5061
Table Semaphore1.48841.111039.2123
Restrict1.21401.238229.7509
Tanenbaum1.81901.796544.6516
Fair Eat-Time Tanenbaum1.80781.881841.02648.12% ETFS
Fair Eat-Chance Tanenbaum1.81631.600846.663910.89% ECFS
Chandy-Misra1.46662.011222.1077
Eat-Chance Restrict Token1.55730.444524.364357.87% ECFS
Eat-Time Restrict Token1.65372.199021.494937.59% ETFS

Exponential Distribution: λ = 5
Runs per algorithm: 20
Simulation time: 2000 time steps
Number of Philosophers: 5
Algorithm CS ECFS ETFS FS Improvement
Naive1.26011.109378.9417
Hierarchy1.54172.531099.9440
Asymmetric1.63142.712386.6127
Global Token0.96930.311567.201071.92% ECFS
Multiple Token1.41870.338696.985069.48% ECFS
Timeout(200 ms)1.59381.830781.4835
Instant Timeout1.67322.148988.6110
Eat Permission Waiter0.99120.933874.7230
Pickup Permission Waiter1.34121.280572.0612
Intelligent Waiter1.44011.321475.8088
Fair Eat-Time Waiter1.34441.671737.587247.84% ETFS
Fair Eat-Chance Waiter1.38320.549484.681157.09% ECFS
Two Waiters1.50521.790795.0338
Restrict Waiter1.37711.316877.0305
Table Semaphore1.35411.106585.5687
Restrict1.33801.352664.0767
Tanenbaum1.73422.039362.3498
Fair Time Tanenbaum1.72472.229681.7054
Fair Chance Tanenbaum1.71601.887176.21887.46% ECFS
Chandy-Misra1.57391.127574.7704
Eat-Chance Restrict Token1.47680.764990.153731.05% ECFS
Eat-Time Restrict Token1.49471.844744.613243.49% ETFS

Algorithm Average CS Subcategory
Naive1.25655Moderate Concurrency
Hierarchy1.732975High Concurrency
Asymmetric1.7668High Concurrency
Global Token0.978775No Concurrency
Multiple Token1.680825Good Concurrency
Timeout(200 ms)1.713775High Concurrency
Instant Timeout1.727825High Concurrency
Eat Permission Waiter0.98855No Concurrency
Pickup Permission Waiter1.485375Moderate Concurrency
Intelligent Waiter1.625025Good Concurrency
Fair Eat-Time Waiter1.47935Moderate Concurrency
Fair Eat-Chance Waiter1.499725Moderate Concurrency
Two Waiters1.66845Good Concurrency
Restrict Waiter1.50395Good Concurrency
Table Semaphore1.47555Moderate Concurrency
Restrict1.346375Moderate Concurrency
Tanenbaum1.831725High Concurrency
Fair Eat-Time Tanenbaum1.8292High Concurrency
Fair Eat-Chance Tanenbaum1.82585High Concurrency
Chandy-Misra1.661125Good Concurrency
Eat-Chance Restrict Token1.640125Good Concurrency
Eat-Time Restrict Token1.684875Good Concurrency