多核CPU可以并行访问内存里面的数据吗?不能的话,具体的模型是什么?

hitzhang 2010-09-17 02:03:57
假设有一个数组有1000个元素,假设我在双核CPU上启动两个进程,分别读取前500个和后500个元素,这个读取访问是并行的吗?还是串行的?
如果是并行的,计算机的CPU-Mem模型是什么样的?
...全文
1072 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
david-yue 2010-10-16
  • 打赏
  • 举报
回复
读取同一块内存的不同区域,完全可以实现并行,但是同一块内存的同一区域,则不能并行进行,需要在不同内核之间进行核间通信,先后执行。
zhoujk 2010-10-16
  • 打赏
  • 举报
回复
可以做到,如果小心控制,还可以做到并行写而不会出错,你自己试一下嘛。我用多内核的方式进行过同一张图像的并行处理,用一个函数读取图像的内存数据,然后将它分割成N块,检查其中某个块是否已经计算,如果未计算,则计算它,然后返回到内存。
两个核分别调用这个函数,可以将图像的处理速度提供0.99倍左右,
Applic 2010-10-16
  • 打赏
  • 举报
回复
多线程、多核等都是有效的并行方式,难道你还怀疑吗
内存控制器是有多通道的,现在内存控制器还整合到了CPU内部
luhaode 2010-10-16
  • 打赏
  • 举报
回复
深奥哎,看不懂听 不懂
guanxinquan 2010-09-19
  • 打赏
  • 举报
回复
这种是共享内存的多处理机模型,按常理来说,多个线程之间会并行处理的,(注意:for循环的语句中不能是有相关性的)。
实际上这是并行计算中的一种,使用openmp就有这种操作,你可以看看openmp的知识就很了然了。
hitzhang 2010-09-19
  • 打赏
  • 举报
回复
如果数据时在cpu的缓存里面,由于现在多核的缓存都是独立的,所以这块的操作可以看做是完全并行的,但是对于主内存,目前主内存控制器应该是只有一个吧,它如何做到并行呢?还是说对于所有核的内存IO请求到达内存控制器后都会被串行化?
hitzhang 2010-09-17
  • 打赏
  • 举报
回复
这个未免太粗了,冯诺依曼模型和并行化没有必然联系吧,多核CPU到底能不能并行在内存中读取数据呢?
xingzhe2001 2010-09-17
  • 打赏
  • 举报
回复
就是冯诺伊曼模型

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧