我们可以在单个CPU上互换使用“并行编码”和“多线程编码”吗?

我在这两个方面都没有太多经验,
但我想将我的编码样式更改为上述任何一种。

正如我现在发现的那样,许多单一应用程序已经过时了,对于将来的软件行业来说,这将是一个更好的职业前景吗?

最佳答案

多线程与并行编码/计算之间肯定存在重叠,但目标处理体系结构之间存在主要差异。

多线程用于在共享内存的单个CPU上的单个进程中利用并发的好处。在具有多个CPU的计算机上运行相同的程序可能会显着提高速度,但通常是一个奖励,而不是预期的(直到最近)。许多操作系统具有线程模型(例如pthreads),它们可以从中受益,但不需要多个CPU。

多处理并行编程的标准模型,该编程针对多个CPU,从早期在大型计算机上具有多个CPU的SMP机器,到跨多个计算机进行集群计算,现在又回到一台计算机上的多个CPU/内核。 MPI是可以跨许多不同体系结构工作的标准。

当然,可以使用带有诸如OpenMP之类的语言框架的线程对并行设计进行编程。我听说过依赖于理论上可以在任何地方运行的独立处理的多组件GUI/应用程序。实际上,前者比后者更多。

可能的主要区别是程序在多台计算机上运行时,使用多线程是不切实际的,并且共享内存的现有应用程序将无法工作。

关于multithreading - 并行编码与多线程(在单个CPU上),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1073098/

10-10 12:44