为了账号安全,请及时绑定邮箱和手机立即绑定

在OpenMP并行代码中,让memset并行运行会不会有好处?

在OpenMP并行代码中,让memset并行运行会不会有好处?

子衿沉夜 2019-10-31 13:12:21
我的内存块可能很大(大于L2缓存),有时我必须将它们设置为全零。memset的串行代码很好,但是并行代码呢?如果有人从并发线程中调用memset确实可以加快大型数组的运行速度,是否有人经验?甚至使用简单的openmp并行for循环?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

在第一次调用malloc该内存时,使用anonymous进行分配mmap。这导致在进程的虚拟地址空间中进行映射,但是该映射仍然不受物理RAM帧的支持,而是在区域中的所有位置对写全复制的特殊内核页进行全写复制。因此,从刚映射的内存读取将返回零。首次写入该区域内的某个地址时,将发生页面错误,故障处理程序将找到一个可用的RAM帧并将其映射到相应的页面。

查看完整回答
反对 回复 2019-10-31
  • 2 回答
  • 0 关注
  • 746 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信