我有一个foo消耗大量内存的功能,我希望并行运行几个实例.
假设我有一个带有4个物理内核的CPU,每个内核都有两个逻辑内核.
我的系统有足够的内存来容纳4个foo并行实例,但不是8个.而且,由于这8个内核中有4个是逻辑的,所以我也不希望使用所有8个内核可以提供超出使用4个物理内核的大量增益只要.
所以,我想运行foo在4个物理内核只.换句话说,我想确保执行multiprocessing.Pool(4)(4是由于内存限制而在此计算机上可以容纳的函数的最大并发运行次数)将作业调度到四个物理内核(例如,不是两个物理核心及其两个逻辑后代的组合.
如何在python中做到这一点?
我之前使用过代码示例,multiprocessing但我与库无关,所以为了避免混淆,我删除了它.