我正在研究 A3C/ACER 的变体,我有几个工作人员,每个工作人员都在自己的线程上运行。我正在使用 OpenAI 健身房环境。
Python 线程工作正常,但不能充分利用所有内核。由于没有阻塞 I/O,它不会进行上下文切换。
我希望工作人员在各自的环境中执行操作时以某种方式释放 GIL。
我会很感激您的反馈:这是否有意义并且可能?
我正在研究 A3C/ACER 的变体,我有几个工作人员,每个工作人员都在自己的线程上运行。我正在使用 OpenAI 健身房环境。
Python 线程工作正常,但不能充分利用所有内核。由于没有阻塞 I/O,它不会进行上下文切换。
我希望工作人员在各自的环境中执行操作时以某种方式释放 GIL。
我会很感激您的反馈:这是否有意义并且可能?
回答我自己的问题:我发现 OpenAI Universe-starter-agent 展示了一种非常有效的方法:https ://github.com/openai/universe-starter-agent 。
该实现使用 Tensorflow 并运行包括参数服务器在内的独立进程。
我认为这也可以作为对其他人的参考。