Week | Task | Progress | Assigned to |
---|---|---|---|
11/02 – 11/08 | Investigate lock-free hash table algorithms | Done | Both |
11/09 – 11/15 | Implementing lock-free extensible hash table using CAS | Done | Xinzhu |
11/16 – 11/22 | Implement the coarse-grained locked extensible hash table | Done | Xinzhu |
Implement the fine-grained locked extensible hash table | Done | Xinzhu | |
11/23 – 11/29 | Verify correctness of implemented hash tables | Done | Xinzhu |
Finish checkpoint report | Done | Both | |
11/28 – 12/02 | Performance analysis - same tests as the paper | In-progress | Danié |
11/30 – 12/04 | Performance analysis - time distribution | In-progress | Danié |
11/30 – 12/09 | Optimize hash table implementations | In-progress | Both |
12/10 – 12/13 | Finish final report | TODO | Both |
12/13 – 12/14 | Finish poster | TODO | Both |
We finished the implementations of the lock-free extensible hash table using CAS and lock-based extensible hash tables. We have a coarse-grained locked extensible hash table implementation with a global lock and a fine-grained one that uses the two-level locking mechanism. We have tested the correctness of all three in the concurrent setting.
Our main goal is to achieve correctness in both the lock-based concurrent extensible hash table and the lock-free implementation. The second goal is to do extensive performance analysis to summarize the characteristics of the two methods and when to prefer the lock-free one.
Most of the stuff we planned to achieve is complete now except for the benchmarking and performance analysis. Based on the experimental results, we hope to further explore some optimization techniques for both lock-free and lock-based extensible hash tables if time permits.
Plan to achieve
Hope to achieve
We will show the execution time and speedup graphs of different concurrent extensible hash tables. We will summarize when we should prefer the lock-free version over lock-based ones and how the lock-free algorithm improves the performance in such scenarios, as well as why we shall prefer the lock-based ones in some other cases.
We need to set up the microbenchmark environment with some benchmark cases to measure the performance of our concurrent extensible hash tables. There are no performance results to show at this point.
There are no current concerts, as we have already implemented the base version of the algorithm and all that remains is the analysis and iterating for optimizations.
Performance comparison graphs of the two-level lock-based extensible hash table and the lock-free one. We will feature lots of graphs featuring the time spent on synchronization, busy, and computing just like the ones from lectures.
There are many optimization techniques we could explore/apply. It is also tricky to design appropriate benchmark to measure the performance.