Role of efficiency in Actor abstraction

5 views
Skip to first unread message

Carl Hewitt

unread,
Jun 4, 2021, 4:01:09 PMJun 4
to fr...@googlegroups.com

Today at FriAM, Bill made the very important point that efficiency should

not be the primary driving characteristic in developing an application.

 

On the other hand, in efficiency is a primary design goal for

the Actor abstraction for digital computation.

In order to exactly model digital computations,

the Actor abstraction cannot impose extra runtime or storage overhead.

 

Regards,

Carl

https://professorhewitt.blogspot.com/

 

Raoul Duke

unread,
Jun 5, 2021, 9:27:43 AMJun 5
to fr...@googlegroups.com
...first make it right, then make it fast, but some things must be fast in order to be right, and if you can't ever make something fast due to whatever limitations are imposed by the language then it is all wrong ;-) 

Douglas Crockford

unread,
Jun 6, 2021, 9:29:36 AMJun 6
to friam
I am wary of performance motivated arguments that can be used to justify crimes like goto statements and adding shared memory to actors.

Carl Hewitt

unread,
Jun 6, 2021, 10:47:44 AMJun 6
to fr...@googlegroups.com

Performance is not increased by having goto commands and having workers with shared memory.

 

In fact, having them can actually decrease performance.

 

Regards,

Carl

https://professorhewitt.blogspot.com/

Douglas Crockford

unread,
Jun 7, 2021, 9:35:28 AMJun 7
to friam
On Sunday, June 6, 2021 at 7:47:44 AM UTC-7 Carl Hewitt wrote:

Performance is not increased by having goto commands and having workers with shared memory.

 

In fact, having them can actually decrease performance.

Quite right. That is why I am wary of performance arguments that are free of measurement data. The actual performance of sequential systems is often counter-intuitive. The actual performance of highly parallel and distributed systems can be even more so because it not always clear where the bottlenecks are and how to relieve them. Without adequate evidence, performance-based arguments are meaningless. 

Carl Hewitt

unread,
Jun 8, 2021, 1:16:38 PMJun 8
to fr...@googlegroups.com

Measurement of systems is important.

 

Systems analysis is also important.

For example, communication between Turing Machines and between lambda-expressions was

crucially omitted thereby crippling them as a foundation for Computer Science.

Church’s lambda calculus crucially omitted concurrency with the consequence that

an Actors machine can be hundreds of times faster than a parallel lambda expression.

The reason that in practice that an Actor can be hundreds of times faster is that

in order to carry out a concurrent computation, the parallel lambda expression must

in parallel gather together the results of the computation step of each core and then

in parallel redistribute the communicated messages from each core to other cores.

The slowdown comes from the overhead of a lambda expression spanning out from a core to all the other cores,

performing a step on each core, and then gathering and sorting the results of the steps (cf. [Strachey 2000]).

 

Actor Speed-Up Theorem: There are practical Actor computations of time t,

                                       which in the parallel lambda calculus require time

                                       a significant multiple of t*log[n], where n is the number of cores on a machine

 

Regards,

Carl

https://professorhewitt.blogspot.com/

 

From: fr...@googlegroups.com <fr...@googlegroups.com> On Behalf Of Douglas Crockford
Sent: Monday, June 7, 2021 06:35
To: friam <fr...@googlegroups.com>
Subject: Re: [friam] Role of efficiency in Actor abstraction

 

 

On Sunday, June 6, 2021 at 7:47:44 AM UTC-7 Carl Hewitt wrote:

Reply all
Reply to author
Forward
0 new messages