1
我正在16核心機器上運行16個線程的多線程程序(包含大量的原子操作)。當我設置線程的關聯性,以便每個線程運行在一個獨特的cpu上時,程序的執行時間與非關聯版本的程序相比增加。使用perf我可以看到,當使用線程核心關聯時,緩存未命中從10%增加到30%,這可能是執行時間增加的原因。您能否介紹一下如何使用關聯可以導致更多的緩存未命中?設置親和性導致執行時間增加
我正在16核心機器上運行16個線程的多線程程序(包含大量的原子操作)。當我設置線程的關聯性,以便每個線程運行在一個獨特的cpu上時,程序的執行時間與非關聯版本的程序相比增加。使用perf我可以看到,當使用線程核心關聯時,緩存未命中從10%增加到30%,這可能是執行時間增加的原因。您能否介紹一下如何使用關聯可以導致更多的緩存未命中?設置親和性導致執行時間增加
您能否介紹一下如何使用親緣關係會導致更多緩存未命中?
因爲這些是CPU高速緩存即一組個體的高速緩存的每個處理器。 例如兩個線程讀取相同的數據: