M++ self-migrating threads are C++ compiled objects, capable of constructing computational network and autonomously migrating themselves over a cluster system. The main goal of M++ is to provide a cluster computing paradigm for multi-agent simulation that has gained popularity in artificial life and ecological simulations, and biological modeling. This type of simulation usually requires autonomous objects, each having its own goals and behaviors, to interact with each other in a synthetic world. The M++ self-migrating threads match the characteristics of such objects in multi-agent simulation, and can thus describe them with narrower semantics gap. Fine granularity and large scalability are two fundamental characteristics of this type of simulations that require fast thread context switch and migration. With the scheduling policy we have designed, M++ manages its threads in pin-downed pages, so that Myrinet's network interface card can directly access and transfer those threads without unnecessary copying operations. In this paper, we present the M++ threads' programmability and study their performance using two multi-agent simulation programs: ant farm simulation and growing neural network.
Index Terms:
Thread migraion, multi-threading, multi-agent systems, parallel and distributed simulation
Citation:
Munehiro Fukuda, Naoya Suzuki, Luis Miguel Campos, Shinya Kobayashi, "Programmability and Performance of M++ Self-Migrating Threads," cluster, pp.331, Third IEEE International Conference on Cluster Computing (CLUSTER'01), 2001