Concurrent programming for software agents
Concurrent programming is an approach to developing a single computer program in such a way that portions of the program can be allocated to different processors so that they can run in parallel. Software agents are already separate computer programs that can run in parallel, but portions of even a small software agent may in fact be suitable for being parceled out to other processors. In addition, the techniques for coordinating parallel processes may well prove quite useful for coordinating software agents.
See some other comments I've made on concurrent programming on the Base Technology blog.