我的內(nèi)存塊可能很大(大于L2緩存),有時(shí)我必須將它們設(shè)置為全零。memset的串行代碼很好,但是并行代碼呢?如果有人從并發(fā)線程中調(diào)用memset確實(shí)可以加快大型數(shù)組的運(yùn)行速度,是否有人經(jīng)驗(yàn)?甚至使用簡單的openmp并行for循環(huán)?
2 回答

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
在第一次調(diào)用malloc
該內(nèi)存時(shí),使用anonymous進(jìn)行分配mmap
。這導(dǎo)致在進(jìn)程的虛擬地址空間中進(jìn)行映射,但是該映射仍然不受物理RAM幀的支持,而是在區(qū)域中的所有位置對寫全復(fù)制的特殊內(nèi)核頁進(jìn)行全寫復(fù)制。因此,從剛映射的內(nèi)存讀取將返回零。首次寫入該區(qū)域內(nèi)的某個(gè)地址時(shí),將發(fā)生頁面錯(cuò)誤,故障處理程序?qū)⒄业揭粋€(gè)可用的RAM幀并將其映射到相應(yīng)的頁面。
- 2 回答
- 0 關(guān)注
- 833 瀏覽
添加回答
舉報(bào)
0/150
提交
取消