master.py 文件源码

python
阅读 55 收藏 0 点赞 0 评论 0

项目:RL4Data 作者: fyabc 项目源码 文件源码
def main():
    process_size = 4

    for episode in range(5):
        ret_values = [None for _ in range(process_size)]
        results = [None for _ in range(process_size)]

        envs = [os.environ.copy() for _ in range(process_size)]

        for i, env in enumerate(envs):
            env[str('THEANO_FLAGS')] = str('device=cpu,floatX=float{}'.format(32 if i % 2 == 0 else 16))

        time_before = time.time()
        pool = [
            psutil.Popen(
                ['python', 'slave.py'],
                stdout=subprocess.PIPE,
                env=envs[i],
            )
            for i in range(process_size)
        ]

        # time_after = time.time()

        # Roll polling
        while any(e is None for e in ret_values):
            for i, process in enumerate(pool):
                ret_values[i] = process.poll()
            time.sleep(1.0)

        time_after = time.time()

        for i, process in enumerate(pool):
            if ret_values[i] == 0:
                results[i], _ = process.communicate()

        print('Time: {:.6}s'.format(time_after - time_before))
        print(*results, sep='')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号