[英]How can a program written in C++ be run on multiple CPU architectures?
[英]How to run a C++ program only on one CPU?
我一直在阅读有关如何检查我的计算机有多少个CPU或内核(MacBook OS X,Sierra,v。10.12、2GHz Intel Core i7)的信息,但是这里有很多不同的答案,例如:
不过,我需要确保C ++程序仅在一个CPU上运行1个(如果可能的话,只能在一个内核上运行,即无需调度,即我的程序应具有专用内核才能在=>上运行)我不确定我的Mac OS X架构的实际组织方式)。
我不确定是否应该在实现,编译或执行级别完成此操作。 我见过人们在谈论taskset
Ubuntu的,但我不知道这是对我来说是合适的工具(也许它根本不存在于Mac OS X)。
注意:如果您认为应该在另一个Stack Exchange的网站上询问此问题,请告诉我,我将其移至该位置。 实际上,我希望我的解决方案是跨平台的,所以也许这不是问这个问题的最佳地点。
流程是有计划的,非计划流程的想法是矛盾的。
也就是说,将自己限制为一个CPU几乎是C ++中的默认设置。 main
从一个线程开始,除非您创建其他线程,否则您将获得全部。
您提到您想要一个“专用”核心。 有一种将线程固定到核心的想法,可以实现这种目的,但是您可以弄清楚如果两个程序将自己固定到同一核心会发生什么。 当两个程序共享该固定内核时,另一个内核可能完全未使用。 这是超级计算机的一项功能,超级计算机的内核无法统一访问内存,因此您应该匹配CPU内核和内存分配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.