Changeset 0aa77e6
- Timestamp:
- Jul 10, 2023, 5:53:09 PM (17 months ago)
- Branches:
- master
- Children:
- f80e0f1e
- Parents:
- 04c31f4
- 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 & 5547ns1 46ns & 74ns & 9519ns & 8409ns & 5513ns -
doc/theses/colby_parsons_MMAth/data/nasusSendStatic
r04c31f4 r0aa77e6 1 23ns & 2779ns & 59ns & 40ns & 68ns1 23ns & 42ns & 2780ns & 67ns & 68ns -
doc/theses/colby_parsons_MMAth/data/pykeSendDynamic
r04c31f4 r0aa77e6 1 5 8ns & 8476ns & 5972ns & 81ns & 4179ns1 59ns & 79ns & 8491ns & 5451ns & 4167ns -
doc/theses/colby_parsons_MMAth/data/pykeSendStatic
r04c31f4 r0aa77e6 1 2 4ns & 1712ns & 74ns & 40ns& 90ns1 25ns & 40ns & 1699ns & 67ns & 90ns -
doc/theses/colby_parsons_MMAth/text/actors.tex
r04c31f4 r0aa77e6 253 253 Managing 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. 254 254 255 \PAB{Do you need to say more here?}256 257 255 % In actor systems, messages are sent and received by actors. 258 256 % When a actor receives a message it executes its behaviour that is associated with that message type. … … 1003 1001 This heuristic does not boast better performance than randomized victim selection, but it is comparable. 1004 1002 However, 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 1006 1004 % 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}. 1007 1005 % Additionally, the longest victim heuristic makes it very improbable that the no swap scenario presented in Theorem~\ref{t:vic_cycle} manifests. … … 1080 1078 The messages that \CFA provides are @DeleteMsg@, @DestroyMsg@, and @FinishedMsg@. 1081 1079 These 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.} 1080 These were shown earlier in Figure~\ref{f:ConvenienceMessages}, and can be overloaded by users to have specific behaviour for derived actor types. 1085 1081 1086 1082 \section{Performance}\label{s:actor_perf} … … 1131 1127 \caption{Static Actor/Message Performance: message send, program memory (lower is better)} 1132 1128 \label{t:StaticActorMessagePerformance} 1133 \PAB{Put uC++ beside \CFA.}1134 1129 \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)} \\ 1136 1131 \hline 1137 AMD & \input{data/ pykeSendStatic} \\1132 AMD & \input{data/nasusSendStatic} \\ 1138 1133 \hline 1139 Intel & \input{data/ nasusSendStatic}1134 Intel & \input{data/pykeSendStatic} 1140 1135 \end{tabular} 1141 1136 … … 1144 1139 \caption{Dynamic Actor/Message Performance: message send, program memory (lower is better)} 1145 1140 \label{t:DynamicActorMessagePerformance} 1146 \PAB{The uC++ AMD looks high. It is 65ns in the Actor paper.}1147 1141 1148 1142 \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)} \\ 1150 1144 \hline 1151 AMD & \input{data/ pykeSendDynamic} \\1145 AMD & \input{data/nasusSendDynamic} \\ 1152 1146 \hline 1153 Intel & \input{data/ nasusSendDynamic}1147 Intel & \input{data/pykeSendDynamic} 1154 1148 \end{tabular} 1155 1149 \end{table}
Note: See TracChangeset
for help on using the changeset viewer.