首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制利用多核

强制利用多核
EN

Stack Overflow用户
提问于 2015-12-07 20:02:10
回答 3查看 57关注 0票数 1

所以我有一个可执行文件,我需要用不同的输入参数多次运行它。每次运行大约需要一个小时,我注意到在整个小时内,8个核心中只有1个核心的CPU利用率为100%,其余的都处于空闲状态。

有没有可能产生4-5个进程,每个进程使用不同的内核并使用不同的参数?这是常见的做法吗?这是我第一次为多核而烦恼,所以如果有任何其他我需要注意的事情,请让我知道。

目前,我正在使用Python运行,并等待这个可执行文件完成。

EN

回答 3

Stack Overflow用户

发布于 2015-12-07 20:27:08

您所描述的是在编译大程序时常规完成的-多个编译器进程会衍生出来,处理不同的文件。

如果您的程序像看起来那样受CPU限制,输入数据很容易分区,并且在编写结果时各种实例不会互相践踏,那么您可以尝试看看是否获得了预期的加速比。

票数 2
EN

Stack Overflow用户

发布于 2015-12-07 20:19:53

在运行并行进程时,应考虑共享资源,此外,根据负载情况,它可能比单进程快,也可能不比单进程快(例如,如果瓶颈不是cpu)

常见问题通常与“竞争条件”和死锁有关,前者是指两个进程使用彼此不知道的相同数据,从而导致数据由于覆盖而损坏的情况

不知道任务的更多细节,就不可能准确地回答

票数 1
EN

Stack Overflow用户

发布于 2015-12-07 22:19:25

正如已经提出的,一种方法是在应用程序中对输入集进行分区,并使用多处理模块并行处理它。

或者,您可以预先对输入进行分区,并使用GNU并行或良好的旧xarg在输入上运行程序的多个副本(查看-n和-P选项)。

然后,如果需要的话,还有将结果合并在一起的问题。

所有这一切都取决于能够将输入拆分成可以独立处理的部分,而不需要协调或共享内存。否则它会变得更复杂。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34133095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档