Sending a message on a channel usually costs at least a compare-and-swap or memory fence. This limits their applicability to things above a certain granularity [...] even in Erlang or Scala actors, you wind up passing around lists and other concrete data structures, because it isn't worth constructing those queues _everywhere_.
So when is a distributed program's internal communication and IO the right level of granularity?
Network IO would seem to be a familiar instance of an Actor model and should map directly.
Sending a message on a channel usually costs at least a compare-and-swap or memory fence. This limits their applicability to things above a certain granularity [...] even in Erlang or Scala actors, you wind up passing around lists and other concrete data structures, because it isn't worth constructing those queues _everywhere_.
So when is a distributed program's internal communication and IO the right level of granularity?
Network IO would seem to be a familiar instance of an Actor model and should map directly.
Interestingly, Intel's new Xeon Phi chip http://semiaccurate.com/2012/11/12/a-look-at-the-xeon-phi-ca... "looks like a cluster of x86 servers that are on a TCP/IP network, and takes almost no programming expertise to port to."