并行与并发,多核多CPU的简介
来源:互联网 发布:剑三帅气萝莉捏脸数据 编辑:程序博客网 时间:2024/06/11 18:50
其实在了解多进程和多线程之前,我们有必要先了解下并行和并发,多核多CPU的基础概念。
并发和并行
从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生,由CPU时间片进行切换。
多核多CPU
先看看“核”是什么吧?
核(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有科学的布局。
再看看单核多CPU
单核多CPU,也就是每一个CPU都需要有较为独立的电路支持,有自己的Cache,而他们之间通过板上的总线进行通信。假如在这样的架构上,我们要跑一个多线程的程序(常见典型情况),不考虑超线程,那么每一个线程就要跑在一个独立的CPU上,线程间的所有协作都要走总线,而共享的数据更是有可能要在好几个Cache里同时存在。这样的话,总线开销相比较而言是很大的,怎么办?那么多Cache,不仅浪费存储的能力,而且一致性又没保证,如果真正做出来,还要在主板上占多块地盘,给布局布线带来更大的挑战,那又该怎办?
最后看看多核单CPU
多核单CPU只需要一套芯片组,一套存储,多核之间通过芯片内部总线进行通信,共享使用内存。在这样的架构上,如果我们跑一个多线程的程序,那么线程间通信将比上一种情形更快。如果最终实现出来,对板上空间的占用较小,布局布线的压力也较小。另一方面多核是指在一个处理器上集成多个个运算核心,从而提高计算能力。
从上面可以看出,多核单CPU比起单核多CPU性能更优。可是,如果需要同时跑多个大程序怎么办?假设俩大程序,每一个程序都好多线程还几乎用满cache,它们分时使用CPU,那在程序间切换的时候,光指令和数据的替换就要费多大事情啊!
因此,大部分一般我们使用的电脑,都是多核单CPU的,但是如果需要更高的并发能力,就需要配置多核多CPU的机子。
因此,大部分一般我们使用的电脑,都是多核单CPU的,但是如果需要更高的并发能力,就需要配置多核多CPU的机子。
1 0
- 并行与并发,多核多CPU的简介
- 浅谈多核CPU、多线程与并行计算
- 浅谈多核CPU、多线程与并行计算
- 浅谈多核CPU、多线程与并行计算
- 浅谈多核CPU、多线程与并行计算
- 浅谈多核CPU、多线程与并行计算
- 关于多核与单核、并行与并发
- 关于多核与单核、并行与并发
- 多核与多CPU
- Matlab 多核 多个CPU 并行运算
- 多核并行计算——并发与并行编程问题
- 并行计算简介和多核CPU编程Demo
- 并行计算简介和多核CPU编程Demo
- 并行计算简介和多核CPU编程Demo
- 并行计算简介和多核CPU编程Demo
- 并行计算简介和多核CPU编程Demo
- 并行计算简介和多核CPU编程Demo
- Java_多核并行简介
- android - Android的线程和进程
- PHP 学习之我的第一份PHP代码
- poj 1664 放苹果
- MySQL高级九——MyISAM表锁(共享读锁)
- linux内存寻址解析
- 并行与并发,多核多CPU的简介
- can't find referenced pointcut原因及解决方案
- 完全背包
- [译] --- OpenGL ES 2.0 for iPhone Tutorial Part 2: Textures
- BZOJ 3238: [Ahoi2013]差异|后缀数组|乘法原理
- 整除个数
- (Java基础--反射)框架的概念及用反射技术开发框架的原理
- awk用法总结
- RS232 9针串口定义