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

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



子衿沉夜
浏览 790回答 2
2回答

达令说

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