python - 在特定核心上使用 python 启动程序

标签 python windows multiprocessing core

有什么方法可以使用 python 通过其 API 启动程序并在指定的内核上运行它?

我需要启动一个 CPU 密集型应用程序大约 5 次,然后在不同的内核上运行它以节省时间。

我正在使用 Windows

最佳答案

进程可以设置自己的affinity,这里是我做的(你可以改变掩码,或者把它做成一个参数,来确定你想使用哪个核心。)

import win32api, win32con, win32process

def setaffinity():
    pid  = win32api.GetCurrentProcessId()
    mask = 128 # core 7
    handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid)
    win32process.SetProcessAffinityMask(handle, mask)

关于python - 在特定核心上使用 python 启动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33432204/

相关文章:

python - 相同的线程标识,如何解释?

python - 如何在数据集中使用 read_csv 并以损坏的管道 "¦"作为分隔符???

python - 在多 CPU 环境中并行化大量功能

python - Python 的 multiprocessing.connection 是否序列化?

python - 了解Python文档: how to know what a function returns?

windows - 来自 KERNEL32.DLL 的循环依赖错误?

windows - Git 源代码控制下的 Solr 配置和设置

windows - Windows 上的 Python + webkit + gtk

python - 如何使用joblib并行写入文件?可加入队列问题

python - 什么更随机,hashlib 或 urandom?