我有一个 Python 脚本,其中每个添加的线程的并行化开销高于超线程的最大性能优势。
但将线程数设置为系统 CPU 数量的一半是不够的。因为为了节省电量,Linux 内核可以选择在虚拟核心上打包线程,而不是使用更多的物理核心
那么,在设置进程亲和性时如何确定物理核心绑定?我应该将进程绑定到奇数还是偶数个系统 CPU 核心(例如,将进程绑定到系统核心2 4 6 8
)?
我有一个 Python 脚本,其中每个添加的线程的并行化开销高于超线程的最大性能优势。
但将线程数设置为系统 CPU 数量的一半是不够的。因为为了节省电量,Linux 内核可以选择在虚拟核心上打包线程,而不是使用更多的物理核心
那么,在设置进程亲和性时如何确定物理核心绑定?我应该将进程绑定到奇数还是偶数个系统 CPU 核心(例如,将进程绑定到系统核心2 4 6 8
)?