C 在linux上,是否可能将多核合并为单核处理?
我正在考虑一个想法,一个lagacy应用程序需要在CoreI7CPU上以全性能运行。是否有任何linux软件/实用程序可以将该应用程序的所有内核组合在一起,从而使其能够以比仅使用一个内核更高的性能进行处理 该应用程序是readpst,它仅使用一个Core来处理outlook PST文件 如果我不能使用所有的核就可以了,如果我能使用3个核就可以了C 在linux上,是否可能将多核合并为单核处理?,c,linux,multithreading,performance,multicore,C,Linux,Multithreading,Performance,Multicore,我正在考虑一个想法,一个lagacy应用程序需要在CoreI7CPU上以全性能运行。是否有任何linux软件/实用程序可以将该应用程序的所有内核组合在一起,从而使其能够以比仅使用一个内核更高的性能进行处理 该应用程序是readpst,它仅使用一个Core来处理outlook PST文件 如果我不能使用所有的核就可以了,如果我能使用3个核就可以了 可能吗?还是我喝醉了 如果我对多分叉的C知识很好,我将重写它以使用多核。不,应用程序需要多线程才能使用多核。当然,如果您愿意,您可以自由编写该应用程序的
可能吗?还是我喝醉了
如果我对多分叉的C知识很好,我将重写它以使用多核。不,应用程序需要多线程才能使用多核。当然,如果您愿意,您可以自由编写该应用程序的多线程版本,但要确保不同的线程不会相互干扰,可能并不容易 “可能吗?还是我喝醉了?”
你喝醉了!如果这在一般情况下是容易的,英特尔现在已经将其内置到处理器中了 如果您希望它减轻多核的负担,那么您可以编写多线程版本的程序。但只有在它实际上是可并行的情况下。你说你在读pst文件,注意不要碰到IO瓶颈 使用线程、互斥、信号量等的一个很好的库是。基于Intel Nehalem的CPU(i7、i5、i3)已经在一定程度上做到了这一点 通过使用他们的涡轮增压模式,当使用单芯时,它会自动超时,直到达到功率和温度限制 新版本的i7(2K芯片)在这方面做得更好
阅读,然后。您要查找的是“单一系统映像”或SSI。互联网上很少有关于人们做这种事情的信息,因为它往往是为超级计算(也许还有服务器)保留的
目前还没有这样的应用程序,但这是可能的 当操作系统将在虚拟机中运行时,虚拟机监控程序可以使用几个CPU来确定哪些CPU代码可以并行运行,并且不需要按顺序运行,然后可以同时使用其他几个CPU来完成这些操作 在下一秒,当操作CPU空闲时(因为它们完成工作的速度更快),动物园管理员可以向它们提供新的数据,它们可以开始计算下一秒的指令
我们之所以需要在虚拟机监控程序级别而不是在操作系统中执行此操作,是因为内存锁定这是不可能的。这不是按照OP的要求在多个线程上运行代码,是吗?@dty:不是,但他也提到了“全性能”所以值得一提。当我尝试分叉4个孩子时,我遇到了IO死锁的问题。这将是毫无意义的。
readpst
程序几乎不使用任何CPU,它几乎完全是I/O。