Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1
As advances in computer architecture and changing economics make feasible machines with large-scale parallelism, Artificial Intelligence will require new ways of thinking about computation that can exploit parallelism effectively. We present the actor model of computation as being appropriate for parallel systems, since it organizes knowledge as active objects acting independently, and communicating by message passing. We describe the parallel constructs in our experimental actor interpreter Act 1. Futures create concurrency, by dynamically allocating processing resources much as Lisp dynamically allocates passive storage. Serializers restrict concurrency by constraining the order in which events take place, and have changeable local state. Using the actor model allows parallelism and synchronization to be implemented transparently, so that parallel or synchronized resources can be used as easily as their serial counterparts.