搞懂CPU的多线程,接下来做并行计算的开发

本文要回答的问题:什么是并行计算?如何做到?

CPU型号
查看个数
lscpu

确认,该机子如下:

  • 4颗物理CPU #sockets
  • 每颗是10核 #cores per socket
  • 每个核支持2线程 #threads per core
  • 总共80个物理CPU,也就是80个线程(4102)

区别并行与并发

“并发”,这和并行是有着本质的不同的。并发是“伪并行”,看似并行,而实际上还是一个CPU在 执行一切事物,只是切换的太快,我们没法察觉罢了。
也就是CPU时间片的轮转。

多线程,可以做并行计算,并行计算还可以通过多进程方式。

多进程(这又包括共享存储区的和分布式多机,以及混合式的),指令级并行。

ILP(指令级并行),x86架构里叫SMT(同时多线程),在MIPS架构里与之对应的是super scalar(超标量)和乱序执行,二者有区别,但共同点都是可以达到指令级并行,这是用户没法控制的,不属于编程范围,只能做些有限的优化,而这有限的优化可能只属于编译器管辖的范畴,用户能做的甚少。

而qsub -pe 和-l p参数的差异。。。
逐步解答,未完待续。


参考:linux下怎么查看cpu核数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。