I began the week with a solid implementation of the top list, fully debugged and working with Cilk locks.
Insertions worked in parallel, but the program was ultimately slow when it came to renumbering.
My next task in the project required me to build off of this top list. Each node was assigned a sublist.
The sublist could contain no more than 100 elements (this number is flexible, but I chose to work with 100).
Elements are inserted into the sublist. If no space exists between two nodes, the entire sublist is renumbered.
When the sublist reaches the maximum number of elements, the list is split and the latter half is assigned to a new node in the top (original) list.
The implementation itself is not difficult and is largely based on the original top list from the previous week;
however, I began experiencing a number of issues when I began including Cilk locks and attempting to run it in parallel.
Previously, I'd used my own locks, but there should not have been much of a difference between my own and the Cilk locks.
This week, my lab met at Fitz's for dinner. Fitz's makes their own root beer and offers a $2 bottomless mug of root beer, cream soda,
orange soda, or grape soda. It was a lot of fun. The staff was incredible at refilling drinks, and the table record was 5 mugs of root beer.
|