我一直关注分布式游戏树遍历的this paper,并且(在其他人的帮助下)尝试制作软件树遍历器的Python / mpi4py克隆,以解决双人游戏抽象策略游戏。 / p>
首先,Wikipedia provides a breif description关于如何解决"一场比赛。
记住已经解决的结果是一种常见的优化,因此不需要进一步的树遍历。由于计算机集群不能轻易地在彼此之间共享结果,因此已经采取各种方法来解决该问题。本文中的方法(Transposition Table Driven Work Scheduling)基本上如下工作:
正如报纸甚至提到的那样,这种方法有点矛盾,具有令人难以置信的高通信率。
以下是问题:
在一台计算机上似乎工作正常。然后我在学校的集群上进行了一些测试,遇到了一些严重的问题。解决像TicTacToe这样的游戏非常糟糕,经常在"调试模式" (4个节点,20个核心,15分钟时间限制)。
我将TicTacToe解决方案数据库保存到他们称之为"用户目录" (更多可以是found here)。这与"刮擦"相反。通常用于存储数据的目录。当我这样做时,TicTacToe的数据库在几秒钟内就解决了。
我注意到"刮擦"使用的"Lustre FS"空间似乎是“对等”#34的糟糕选择。应用:
虽然Lustre文件系统可以在许多工作环境中运行,但它 不一定是所有应用程序的最佳选择。这是最好的 适合超过单个服务器容量的用途 虽然在某些用例中提供了Lustre文件系统可以执行 单个服务器比其他文件系统更好,因为它强大 锁定和数据一致性。
Lustre文件系统目前不是特别适合 "对等网络"运行客户端和服务器的使用模型 由于缺乏,每个共享少量存储的同一节点 Lustre软件级别的数据复制。在这种用途中,如果有的话 客户端/服务器失败,那么存储在该节点上的数据将不会 可以访问,直到节点重新启动。
我可能对分布式计算没有足够的把握,但似乎Lustre FS可能不会客观地适合这类问题。不幸的是,我使用的集群被锁定使用Lustre FS。另一种选择是使用Google Cloud Engine或AWS来完成任务,但我对某些问题感到困惑:
答案 0 :(得分:0)
没有任何代码,也没有关于如何使用文件系统的描述,很难提供一些有价值的帮助。 无论如何,如果我在行之间阅读
我做对了吗?
如果是,那么这不是一个惊喜表现是可怕的,不规模。 你基本上要求并行文件系统最糟糕的是:从所有节点访问大量元数据,这涉及到流量控制,以保持文件系统的一致视图。
您需要多少数据来存储解决方案?
乍一看,将它们存储在旧的学校数据库(例如MySQL)中可能会更快。另一种选择是将其存储在本地文件系统上,让远程节点向运行数据存储的任务发出查询(创建此文件,此文件是否存在),因此无需保留元数据 - 数据一致的节点。
更好的版本是让所有节点存储解决方案并回复查询。您可以散列解决方案并推断它存储在哪个节点上,这样您就知道应该要求哪些MPI任务存储解决方案或发出查询。
如果你真的必须使用文件系统,那么NFS可能是比并行文件系统更好的选择,例如lustre,glusterfs或gpfs。