Ignore:
Timestamp:
Jul 18, 2022, 8:06:18 AM (22 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
Children:
6a896b0, d677355
Parents:
4f3807d
Message:

proofread chapter text/io.tex, and updates in other chapaters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex

    r4f3807d r847bb6f  
    77All of these benchmarks are run on two distinct hardware environment, an AMD and an INTEL machine.
    88
    9 For all benchmarks, \texttt{taskset} is used to limit the experiment to 1 NUMA Node with no hyper threading.
     9For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA Node with no hyper threading.
    1010If more \glspl{hthrd} are needed, then 1 NUMA Node with hyperthreading is used.
    1111If still more \glspl{hthrd} are needed then the experiment is limited to as few NUMA Nodes as needed.
     
    3535\end{figure}
    3636The most basic evaluation of any ready queue is to evaluate the latency needed to push and pop one element from the ready-queue.
    37 Since these two operation also describe a \texttt{yield} operation, many systems use this as the most basic benchmark.
     37Since these two operation also describe a @yield@ operation, many systems use this as the most basic benchmark.
    3838However, yielding can be treated as a special case, since it also carries the information that the number of the ready \glspl{at} will not change.
    3939Not all systems use this information, but those which do may appear to have better performance than they would for disconnected push/pop pairs.
     
    5757This is to avoid the case where one of the \glspl{proc} runs out of work because of the variation on the number of ready \glspl{at} mentionned above.
    5858
    59 The actual benchmark is more complicated to handle termination, but that simply requires using a binary semphore or a channel instead of raw \texttt{park}/\texttt{unpark} and carefully picking the order of the \texttt{P} and \texttt{V} with respect to the loop condition.
     59The actual benchmark is more complicated to handle termination, but that simply requires using a binary semphore or a channel instead of raw @park@/@unpark@ and carefully picking the order of the @P@ and @V@ with respect to the loop condition.
    6060Figure~\ref{fig:cycle:code} shows pseudo code for this benchmark.
    6161
     
    116116\section{Yield}
    117117For completion, I also include the yield benchmark.
    118 This benchmark is much simpler than the cycle tests, it simply creates many \glspl{at} that call \texttt{yield}.
    119 As mentionned in the previous section, this benchmark may be less representative of usages that only make limited use of \texttt{yield}, due to potential shortcuts in the routine.
     118This benchmark is much simpler than the cycle tests, it simply creates many \glspl{at} that call @yield@.
     119As mentionned in the previous section, this benchmark may be less representative of usages that only make limited use of @yield@, due to potential shortcuts in the routine.
    120120Its only interesting variable is the number of \glspl{at} per \glspl{proc}, where ratios close to 1 means the ready queue(s) could be empty.
    121121This sometimes puts more strain on the idle sleep handling, compared to scenarios where there is clearly plenty of work to be done.
     
    184184
    185185To achieve this the benchmark uses a fixed size array of semaphores.
    186 Each \gls{at} picks a random semaphore, \texttt{V}s it to unblock a \at waiting and then \texttt{P}s on the semaphore.
     186Each \gls{at} picks a random semaphore, @V@s it to unblock a \at waiting and then @P@s on the semaphore.
    187187This creates a flow where \glspl{at} push each other out of the semaphores before being pushed out themselves.
    188188For this benchmark to work however, the number of \glspl{at} must be equal or greater to the number of semaphores plus the number of \glspl{proc}.
    189 Note that the nature of these semaphores mean the counter can go beyond 1, which could lead to calls to \texttt{P} not blocking.
     189Note that the nature of these semaphores mean the counter can go beyond 1, which could lead to calls to @P@ not blocking.
    190190
    191191\todo{code, setup, results}
Note: See TracChangeset for help on using the changeset viewer.