我搜索了几个相关的帖子,但没有一个明确回答我的查询。我正在尝试创建一个将使用多处理将作业分配到机器的类。“作业”是使用子进程的系统调用,我不希望脚本在生成后保持与作业的连接。我已经使用 Process 类完成了所有工作,但我想尝试 Pool 类,但我遇到了问题。
我的代码在这里: https ://gist.github.com/2627589
相关方法是 run_queue 方法。您可以在 Test_pool 类中看到我覆盖了 Runner 类的 run_queue 方法。但是,当我运行它时,出现错误: PicklingError: Can't pickle : attribute lookup builtin .instancemethod failed
我的目标是能够定义一个应该保持忙碌的 MAX_NUM_CORES,并持续提交作业,只要分配的作业使用的核心数不超过定义的最大内核数(例如 MAX_NUM_CORES)。也许我没有使用正确的设计模式?欢迎提出建议。