我试图了解错误共享和缓存对齐以及它对多核系统性能的影响。这是我的案例,我试图在非常高的层次上理解。
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 大小。每个线程相互独立,不写入/读取其他线程的数据结构。线程始终持有其时间片开始的锁。
鉴于我的上述情况,是否有任何错误共享的机会或任何可能阻碍性能的负面影响。我认为不会有任何错误共享,因为每个线程都在自己的数据结构上工作,并在线程时间片的一开始就锁定。