Changeset a9e10e2 for doc/theses
- Timestamp:
- Jul 5, 2023, 5:34:10 PM (18 months ago)
- Branches:
- master
- Children:
- 2f26b841, c8bf1b5
- Parents:
- 7c4416a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/text/actors.tex
r7c4416a ra9e10e2 682 682 In theory, if this race occurs multiple times consecutively \ie a thief steals, dereferences stolen mailbox pointer, is interrupted and stolen from, etc., this scenario can cascade across multiple workers all attempting to gulp from one mailbox. 683 683 The @being_processed@ flag ensures correctness even in this case, and the chance of a cascading scenario across multiple workers is even rarer. 684 % The rarity is why this mechanism is zero-victim-cost in practice but not in theory. 685 By collecting statistics on failed gulps due to the @being_processed@ flag, this contention occurs $\approx$0.05\% of the time when a gulp occurs (1 in every 2000 gulps). 686 \PAB{You need to explain the experiment that gathered this information.} 687 Hence, the claim is made that this stealing mechanism has (probabilistically) zero-victim-cost in practice. 684 It is straightforward to count the number of missed gulps due to the @being_processed@ flag at runtime. 685 With the exception of the repeat benchmark, the median count of missed gulps for each number of cores for all benchmarks presented in Section~\ref{s:actor_perf} is \emph{zero}. 686 The repeat benchmark is an example the pathological case described earlier where there is too little work and too many workers. 687 In the repeat benchmark one actor has the majority of the workload, and no other actor has a consistent workload which results in rampant stealing. 688 None of the work stealing actor systems compared in this work perform well on the repeat benchmark. 689 Hence, the claim is made that this stealing mechanism has a (probabilistically) zero-victim-cost in practice. 688 690 689 691 \subsection{Queue Pointer Swap}\label{s:swap}
Note: See TracChangeset
for help on using the changeset viewer.