我有一个具有 3 个主要功能的应用程序,这些功能目前正在按顺序运行:
1)将数据加载到内存并对其进行预处理。
2)使用 GPU 和 theano 对数据进行一些计算。
3)监控 GPU 上的计算状态并将其打印到屏幕上。
通过使用多线程,这 3 个功能可以令人尴尬地并行化。但是在 python 中,我按顺序执行所有这三个功能。部分是因为过去我在 Python 多线程和 GIL 问题上运气不佳。
在这种情况下,我不一定需要利用手头的多 CPU 的全部功能。我要做的就是在 GPU 上执行计算的同时加载数据并对其进行预处理,并同时监控计算的状态。目前,大多数耗时的计算都是在 2) 处执行的,所以我对 2) 处的操作有点时间限制。现在我的问题是:
*python 可以并行化这 3 个操作而不会产生新的瓶颈,例如:由于 GIL 问题。
*我应该使用多处理而不是多线程吗?
简而言之,如果我应该在 Python 中并行化这三个操作,应该如何并行化。
自从我上次为 CPU(尤其是 python)编写多线程代码以来已经有一段时间了,任何指导都将不胜感激。
编辑:错别字。