现代编程语言为用户提供了一流的并行和并发机制。我了解并行算法是如何编程的,并且可以很好地想象多核CPU上的两个线程如何并行运行。
然而,大多数这些平台还支持在单个线程上运行并行进程。
- 这些进程真的并行运行吗?
- 在汇编级别上,两个不同的例程如何在单个线程上同时执行?
总长度TR; :并行性(在真实的意义上同时在单个非超线程 CPU 核心上执行)是不可能的。
Hardware(
- 多主机
- 多处理器
- 多核
- 多线程(“超线程”,即“HT”)
(编辑:我自愿忽略矢量化计算的情况,其中多个 ALU 可以是driven由同一个核心)
您的问题涉及在情况 3(如果 HT 不可用/禁用)或情况 4 中运行两个软件线程。
分配给这 2 个例程中每一个例程的相对优先级可以通过您赋予进程的“优先级”在各种操作系统上设置,该优先级将由操作系统的调度程序处理,进而分配 CPU 时间。
HTH.
要执行测试以更好地理解此主题,您可能需要搜索“cpuaffinity”。这将让您在多核 CPU 的一个物理单核上运行一个双线程进程,并对每个线程所花费的时间进行计时,同时修改它们的优先级等......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)