本技术属于计算机技术领域,专注于自动线程级并行化过程中的缓存一致性优化技术。该技术包括识别一致性共享变量,并依据这些变量从内存访问指令中筛选出特定的访问模式,进而优化并行执行时的缓存一致性问题。
背景技术
现代众核处理器上的每个处理器核都具有高速缓存(Cache),用以提高数据的访问速度并确保程序编写的便捷性。在运行并行程序时,多个处理器核上运行的多个线程或进程可能会读写同一段共享内存区域内的数据。为了确保并行程序运行的正确性,同一计算节点内的不同处理器之间以及同一处理器的不同处理器核之间需要具备缓存一致性(Cache coherence),以使同一份数据在多个处理器核的高速缓存之间保持一致。因此,众核处理器需要具备维护缓存一致性的硬件体系。
随着计算机技术的不断发展,几乎所有运行在超级计算机上的应用程序都实现了进程级并行。然而在绝大多数情况下,不同进程之间并没有共享的内存区域或变量,因此通常无需在两个进程之间进行缓存一致性操作。有些应用程序可能同时具备进程级并行和线程级并行能力,即一个进程会包含运行在同一计算节点内的多个线程,由于属于同一进程的所有线程共同使用该进程的内存空间,因此通常需要在这些线程之间进行缓存一致性操作。尽管如此,各线程也会私有变量,因此线程之间不会在所有变量上都存在共享使用;即使对于同一共享变量,其在某一程序段可能出现多线程间的共享读写而在另一程序段则可能被各线程间私有使用。由此可见,绝大部分的缓存一致性操作是冗余的。维护缓存一致性,不仅会降低并行程序性能,还会增大硬件系统设计的压力,因此亟需一种自动线程级并行化中的缓存一致性优化方法。
现有技术中引入了对缓存一致性的状态的开启和关闭的方案,但这种方案依然无法充分地降低操作开销。
实现思路