如何使用Windows 7中的所有核心?

vad*_*vad 5 c multicore windows-7

我不确定这是否属于Stackoverflow或超级用户,但我想我会问这里.

我有一个用C语言编写的基于控制台的应用程序,目前在Windows 7 64位操作系统中终止大约需要一个小时.任务管理器报告该应用程序仅使用可用CPU的25%.我想通过增加cpu使用来减少运行时间.

有没有办法让应用程序使用所有四个核心(笔记本电脑有Core i5)而不是一个?我假设任务管理器报告25%,因为只有一个核心被分配给该程序.

小智 15

如果不重新编写应用程序为multi = threaded no,则无法更改应用程序的行为.您可以做的唯一事情是,如果应用程序可以处理输入数据的范围,那么您可以启动具有不同输入数据范围的应用程序的4个实例来处理,并在完成所有结果后合并结果.

想象一下渲染3D动画并且渲染器是单线程的,但您可以指定开始帧和结束帧.您有100帧渲染您将启动4个实例,并指定开始和结束帧范围0 - 25,26 - 50,51 - 75,76 - 100.然后您将所有输出组合到最终的电影文件.

  • +1因为这肯定适用于某些情况.经典案例是对大数据文件中的顺序数据进行操作.将文件拆分为4个较小的文件,运行程序4次,然后在15分钟而不是1小时内完成. (3认同)

Ben*_*son 7

应用程序需要以多线程方式编写才能使用多个内核.没有办法让单线程应用程序使用多个核心.