目前多核CPU都是保持各自的上下文,相互通信则依赖加锁/解锁以及共享内存实现。这种架构对于运行多任务、多线程的操作系统来说比较适合,而对于高性能计算则有点浪费。
其实,可以将多个计算核心组织为向量方式,每次访存都从Cache Line中抓取一整行数据,然后分头处理,类似SIMD方式,处理结果也是以Cache Line方式写回。这样的好处是不存在交叉访问,可以实现最高效率的计算/吞吐,如果待处理数据都是严格按照一个个Cache Line顺序排好,那么理论上可以实现最高效率的处理,主频为F,核心数为N,那么处理性能为N*F OPS。
当然,目前内存带宽可能远远跟不上CPU处理能力,所以这只是一个概念,对于具体实现还有很多工程性的问题。