Changeset 0aa77e6


Ignore:
Timestamp:
Jul 10, 2023, 5:53:09 PM (11 months ago)
Author:
caparsons <caparson@…>
Branches:
master
Children:
f80e0f1e
Parents:
04c31f4
Message:

various actor changes and fixes

Location:
doc/theses/colby_parsons_MMAth
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/data/nasusSendDynamic

    r04c31f4 r0aa77e6  
    1 46ns & 9501ns & 7483ns & 72ns & 5547ns
     146ns & 74ns & 9519ns & 8409ns & 5513ns
  • doc/theses/colby_parsons_MMAth/data/nasusSendStatic

    r04c31f4 r0aa77e6  
    1 23ns & 2779ns & 59ns & 40ns & 68ns
     123ns & 42ns & 2780ns & 67ns & 68ns
  • doc/theses/colby_parsons_MMAth/data/pykeSendDynamic

    r04c31f4 r0aa77e6  
    1 58ns & 8476ns & 5972ns & 81ns & 4179ns
     159ns & 79ns & 8491ns & 5451ns & 4167ns
  • doc/theses/colby_parsons_MMAth/data/pykeSendStatic

    r04c31f4 r0aa77e6  
    1 24ns & 1712ns & 74ns & 40ns & 90ns
     125ns & 40ns & 1699ns & 67ns & 90ns
  • doc/theses/colby_parsons_MMAth/text/actors.tex

    r04c31f4 r0aa77e6  
    253253Managing the envelop is straightforward because it is created at the send and deleted after the receive, \ie there is 1:1 relationship for an envelop and a many to one relationship for a message.
    254254
    255 \PAB{Do you need to say more here?}
    256 
    257255% In actor systems, messages are sent and received by actors.
    258256% When a actor receives a message it executes its behaviour that is associated with that message type.
     
    10031001This heuristic does not boast better performance than randomized victim selection, but it is comparable.
    10041002However, it constitutes an interesting contribution as it shows that adding some complexity to the heuristic of the stealing fast path does not impact mainline performance, paving the way for more involved victim selection heuristics.
    1005 % \PAB{Both of these theorems are commented out.}
     1003
    10061004% Furthermore, in the case they attempt to steal the same queue, at least one of them is guaranteed to successfully steal the queue as shown in Theorem~\ref{t:one_vic}.
    10071005% Additionally, the longest victim heuristic makes it very improbable that the no swap scenario presented in Theorem~\ref{t:vic_cycle} manifests.
     
    10801078The messages that \CFA provides are @DeleteMsg@, @DestroyMsg@, and @FinishedMsg@.
    10811079These messages are supported on all actor types via inheritance.
    1082 When sent to an actor, the actor takes the corresponding allocation action after receiving the message, regardless of what the actor returns to the executor.
    1083 \PAB{What does this mean? Note that any pending messages to the actor will still be sent.
    1084 It is still the user's responsibility to ensure that an actor does not receive any messages after termination.}
     1080These were shown earlier in Figure~\ref{f:ConvenienceMessages}, and can be overloaded by users to have specific behaviour for derived actor types.
    10851081
    10861082\section{Performance}\label{s:actor_perf}
     
    11311127\caption{Static Actor/Message Performance: message send, program memory (lower is better)}
    11321128\label{t:StaticActorMessagePerformance}
    1133 \PAB{Put uC++ beside \CFA.}
    11341129\begin{tabular}{*{5}{r|}r}
    1135         & \multicolumn{1}{c|}{\CFA (100M)} & \multicolumn{1}{c|}{CAF (10M)} & \multicolumn{1}{c|}{Akka (100M)} & \multicolumn{1}{c|}{\uC (100M)} & \multicolumn{1}{c@{}}{ProtoActor (100M)} \\
     1130        & \multicolumn{1}{c|}{\CFA (100M)} & \multicolumn{1}{c|}{\uC (100M)} & \multicolumn{1}{c|}{CAF (10M)} & \multicolumn{1}{c|}{Akka (100M)} & \multicolumn{1}{c@{}}{ProtoActor (100M)} \\
    11361131        \hline
    1137         AMD             & \input{data/pykeSendStatic} \\
     1132        AMD             & \input{data/nasusSendStatic} \\
    11381133        \hline
    1139         Intel   & \input{data/nasusSendStatic}
     1134        Intel   & \input{data/pykeSendStatic}
    11401135\end{tabular}
    11411136
     
    11441139\caption{Dynamic Actor/Message Performance: message send, program memory (lower is better)}
    11451140\label{t:DynamicActorMessagePerformance}
    1146 \PAB{The uC++ AMD looks high. It is 65ns in the Actor paper.}
    11471141
    11481142\begin{tabular}{*{5}{r|}r}
    1149         & \multicolumn{1}{c|}{\CFA (20M)} & \multicolumn{1}{c|}{CAF (2M)} & \multicolumn{1}{c|}{Akka (2M)} & \multicolumn{1}{c|}{\uC (20M)} & \multicolumn{1}{c@{}}{ProtoActor (2M)} \\
     1143        & \multicolumn{1}{c|}{\CFA (20M)} & \multicolumn{1}{c|}{\uC (20M)} & \multicolumn{1}{c|}{CAF (2M)} & \multicolumn{1}{c|}{Akka (2M)} & \multicolumn{1}{c@{}}{ProtoActor (2M)} \\
    11501144        \hline
    1151         AMD             & \input{data/pykeSendDynamic} \\
     1145        AMD             & \input{data/nasusSendDynamic} \\
    11521146        \hline
    1153         Intel   & \input{data/nasusSendDynamic}
     1147        Intel   & \input{data/pykeSendDynamic}
    11541148\end{tabular}
    11551149\end{table}
Note: See TracChangeset for help on using the changeset viewer.