scr*_*ter 1 parallel-processing python-3.x
我正在编写一个 Python 程序,它将从文本文件中加载一个单词列表,然后尝试用每个单词解压缩一个存档。如果它不使用所有cpu内核,那不会很严重。由于 GIL,如果我没记错的话,Python 中的线程并不是一个很好的选择。
所以我想获取cpu_cores的数量,拆分wordlist并使用multiprocessing.process模块在不同的进程中处理wordlist的不同部分。
但是每个进程都会自动固定到 CPU 内核吗?如果没有,有没有办法手动固定它们?
您可以multiprocessing
通过导入来使用 Python ,
import multiprocessing as mp
并通过使用找出处理器的数量,mp.cpu_count()
并且应该可以在大多数平台上工作。
要在特定 CPU 内核(在 linux 中)上启动程序/进程,您可以taskset
使用本指南作为参考。
另一种跨平台解决方案是使用psutil
python 包。
但是,我建议您采用线程/进程池方法,因为在我看来,您应该让操作系统将任务分配给每个 CPU/核心。您可以查看如何使用 python 多处理的所有内核来解决这个问题。
归档时间: |
|
查看次数: |
5634 次 |
最近记录: |