【发布时间】:2017-04-20 15:43:38
【问题描述】:
我正在尝试了解虚假共享和缓存对齐以及它对多核系统性能的影响。这是我的案例,我正在尝试从高层次上理解。
Threads : 2
CPUS/Cores : 4
Locks : 1 per each Thread T1, T2
Data Structures : Each thread has 32k Size Structure which has several nested arrays and structures.
Language : C
我有 2 个线程和 4 个内核/CPU,可以在任何给定时间为 2 个线程提供服务。现在我的线程不断处理写入和读取它们各自的数据结构,这些数据结构相当大,接近 32K 大小.每个线程相互独立,不写入/读取其他线程的数据结构。线程始终持有其时间片开始的锁。
鉴于我的上述情况,是否存在虚假共享的可能性或任何可能阻碍性能的负面影响。我认为不会有任何错误共享,因为每个线程都在自己的数据结构上工作,并在线程时间片的一开始就锁定。
【问题讨论】:
标签: multithreading caching cpu cpu-architecture false-sharing