Repast example
今天必须记录一下:
1.
第一个example,rnd Walker 就是每个进程都初始一个bounding box,所有进程中的bounding box 互相不干扰,比如进程(rank1)内的agents不会走到进程(rank2)的boundingbox里面去。
甚至代码在初始化代理的时候都id都一样,从下图我们可以看出来,这个i 是各个rank无差别的。
所以,根本不是像它文档里3.3画的图(下面这张),这张图是各个boundingbox是有一种方式连接起来的,rank1的代理一直往右边走是可以到达rank2的boundingbox 的,所以rndwalk跟这张图的情况是不一样的。
另外:exmaple3也是类似example1的一个进程的代理走不到另一个进程的机制,而不是上面的图(具体如何达到上图效果呢,我觉得可能是grid space里面那个有函数机制控制,我觉得先不管这些了,因为感觉也不会用到)
2.
Example2是rumor agent,一开始的network是基于某个函数初始化的,在network中。在分布式网络中,利用update方法处理更新,以下为文档原话:
“最后,在分布式网络中,代理通常不会在进程之间移动,而是一旦网络创建,幽灵代理就会留在进程中。Repast4Py 跟踪这些幽灵代理,并且不会通过restore 方法在每个同步步骤中重新创建代理,而是将状态更新发送到适当的幽灵代理。 在这种情况下,将调用代理的update 方法来处理状态更新。”
所以理论上来说它不应该需要restore_agents同步操作,但是example2源代码还是给了,所以是为什么呢,我也不知道