首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行编程澄清与并行编程

并行编程澄清与并行编程
EN

Stack Overflow用户
提问于 2014-06-02 06:22:36
回答 1查看 77关注 0票数 1

我一直在阅读并行编程和并发编程,还有两件事我还没有找到答案,而且仍然很困惑。

1)在某些地方,我读到并行编程允许利用多个CPU同时执行多个进程,而我在其他地方读到它是通过利用多个核来执行的。准确地说哪一个是对的?据我理解,核心是CPU的一部分,因此这两个定义都不可能有效(除非我遗漏了什么)。

2)对于并发编程是如何工作的,我有一个基本的理解,但我不明白为什么并发执行两个进程比顺序执行更快。例如,如果有两个线程由四个计算组成,需要处理相同的时间:

线程A: A1 A2 A3 A4

线程B: B1 B2 B3 B4

线程的并发执行可能导致以下执行: A1 B1 A2 B2 A3 B3 A4 B4。但是,如果这两个线程是按顺序执行的: A1 A2 A3 A4 B1 B2 B3 B4,这怎么会更快呢?这两种执行方法都需要8次总计算,这意味着总时间是相同的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 06:48:14

在一个双核(多核) CPU (或两个一个核心CPU)上,每个线程可以在一个单独的核心上运行。假设两个线程之间不需要同步,它们都可以同时运行(即,每个核心以相同的频率运行4个步骤-因此一半时间-单个核心运行8个步骤)。

一个多核CPU通常可以被认为是一个芯片上的多个CPU:每个独立于其所在位置的核心都可以同时执行一个程序。

例如,一个具有2×Intel i7-47xx (4核)处理器的系统具有8 (2x4)物理核。(使用超线程化,有16个虚拟核。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23988376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档