多处理 - 如何最大化 CPU 使用率?

问题描述

我有一个关于充分利用 cpu 功能的模式/良好做法的问题。

我有一个包含多个元素和 K 个进程的队列(K == cpu_counts)。 每个进程从队列中取出一个元素并进行处理。

yournamespace.YourClassName.YourPropertyKey

self.process_item(item) 调用一个可执行文件并将结果写入一个独立的文件:每个计算都独立于其他进程[在这种情况下,我不能使用多线程,因为我每次都需要更改文件夹才能运行可执行文件]

可执行文件在大约 1 秒内运行,而且它的 cpu 成本并不特别高。 所以,一般来说,当我运行我的代码时,cpu 似乎或多或少未被使用,因为每个进程在不同的内核上运行可执行文件,但可执行文件本身的计算量并不大。

有没有办法让 cpu 处于全功率并更快地处理更多元素?

增加 K > n_cpus 可以提高性能还是只增加进程间切换的开销

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)