任务管理器 ksysguard 告诉我只有一个核心被 enblend 完全占用。有时 enblend 会在核心之间跳跃,但它显然不是为在多个核心之间分配工作而开发的(我有 8 个核心,分别有 16 个线程):
那么:enblend 有多 CPU 版本(或补丁)吗?我当前的版本是 4.2(在 OpenSUSE Leap 15.1 系统上)。谢谢。
更新:Firefox 似乎可以与以下设备配合使用taskset
:
更新 #2:以下是我的版本的链接详细信息enblend
:
╭─jacek@epica ~
╰─➤ enblend --show-software-components
Compiler
g++ 7.4.0
Libraries
GSL: 2.4
Little CMS: 2.9.0
Vigra: 1.11.1
╭─jacek@epica ~
╰─➤ enblend --version --verbose
enblend 4.2
Extra feature: image cache: no
Extra feature: OpenMP: no
Extra feature: OpenCL: no
答案1
enfuse/enblend 提供通过 OpenMP 和/或 OpenCL 进行部分并行化的源代码支持。您可以使用以下命令检查是否已编译--show-software-components
:
$ enfuse --show-software-components
Compiler
g++ 9.1.0
implementing OpenMP standard of 2015-11
Libraries
GSL: 2.6
Little CMS: 2.9.0
Vigra: 1.11.1
该输出也会列出 OpenCL,但它不包含在我拥有的版本中。
请记住,软件的大部分部分可能根本无法并行化。
如果您目前拥有的二进制版本不支持 OpenMP 或 OpenCL,您可以直接编译自己的版本。存储库中有一个很好的 README 文件,您已经知道您可能想要启用哪些功能(从您目前拥有的版本开始)。