我想并行化我的MCTS程序。有几种方法可以做到这一点:
(如果不清楚我的解释,请签出this review paper on MCTS。在第25页上,详细描述了并行化MCTS的不同方法。)
问题:
由于Python中的多处理 可以创建单独的子进程,因此2.根并行化非常合适,而我假设3.树并行化是不可行的。 (由于树并行化,所有子进程都必须共享同一棵树-这在Python中很难做到)
我正确吗?我浏览了多处理文档,如果我理解正确的话,看来 可能在某些基本数据类型的子流程之间来回传递信息,但是由于速度等因素,我们不建议这样做。>
如果是这样,Python中的树并行化将是一个坏主意吧?
答案 0 :(得分:1)
是的,您正确的认为,根并行化将是最容易实现的变体。不同的过程本质上将能够完全彼此独立地运行。只有在搜索过程结束时,才需要以您选择的任何方式汇总结果,我认为实施起来应该不会有问题。
我对Python中的多处理非常熟悉,以至于当您想要更多的交流(其他两种方法需要的那种交流)时,这会有些痛苦。我不太熟悉它,无法100%地确定它确实是“不可能”或“强烈劝阻”的,但是在实现容易性上肯定有明显的区别。