基于芹菜的分布式计算包waldorf
waldorf的Python项目详细描述
waldorf是一个用python编写的高效并行任务执行框架。 它是为研究reinforcement learning而开发的 中国北京our startup company的算法。
华尔道夫是基于Celery distributed task queue, 它的名字来自Waldorf salad, 也有芹菜作为原料。
它可以通过 在多个 机器和自动收集输出。也可以使用waldorf 实现MapReduce样式的工作流。
尽管waldorf可以部署在云服务器上,但我们目前的重点是 正在使用商用PC群集的备用CPU容量(例如 办公室工作站)。对gpu的支持可能会包含在将来的版本中。
功能
waldorf使用主节点在客户机和 从节点。
客户机可以在其本地计算机上创建任务作为python函数。 waldorf使用 芹菜任务队列。当芹菜单独使用时,任务通常必须是 预先定义,但waldorf允许动态定义任务 不需要任何从机重启。
多个客户机可以同时运行其任务而不发生冲突。
客户机可以调整从机上使用的CPU核心数 进行计算。这可以从waldorf动态完成 管理网页。
基本用法
您可以在任何需要并行计算的任务上使用waldorf。
它的众多用途之一是计算MCTS模拟中的卷展栏(对于 例如,在玩游戏的ais)。
下面是一个简单的示例:
defrollout(args):# Do one rollout...defbackup(result):# Backup and handle result...defmcts_search():for_inrange(iter):# Select actionaction=select()...# Submit rollout job to waldorf clientclient.submit(rollout,args,callback=backup)...# More code...
对于更复杂的示例,请查看the gym demo。
快速启动
使用the installation guide和 签出the gym demo。
免责声明
waldorf仍然是研究代码,因此在 文件和支持。欢迎任何反馈。