在被忽视了四分之一个世纪之后,并行计算正在卷土重来。过去的研究可以在今天迅速得到应用。
有趣的文章。我们一定要从过去吸取教训。但我也认为旧的并行系统和新的并行系统之间有一些区别。
我认为这是一个问题:“我们可以通过不写入共享数据来完全避免缓存一致性问题。”问题是,对于我们想要用多核处理器做的许多事情(如图像或游戏,这是我的领域),我们*确实*需要写入共享数据。这是许多解决方案都存在的问题:它们需要使用仅写数据。这有时是可能的,但有时不是。对于我们工作的实际应用程序来说,这是一个通常不可行的限制。例如,图形中的framebuffer是可写共享内存。
所以我认为我们仍然有一个问题,我们没有一个一致的答案:数据的共享和修改。
另一个区别是与任务的生命周期有关。在较老的系统中,存在长时间运行的任务。今天的高性能计算经常是这样。但是对于使用多核的富媒体设备,任务的运行时间通常要短得多。这增加了启动和停止任务的相对成本。我们也有复制处理器核心的问题,但不一定有能力复制存储芯片。这增加了内存带宽的问题。
所以,今天有一些根本的不同,这意味着过去的一些解决方案并不总是合适的。
我们对缓存一致性的评论是关于设计的一部分,该设计支持在公共虚拟内存中运行部分有序任务的非常大系统的可再现结果。有些类型的缓存,例如这里提到的framebuffer,不是虚拟地址空间的一部分。我们看到了一些非常有前途的虚拟内存和数据库系统设计,它们使用一次写入内存来避免共享地址空间中的一致性问题。其中一些问题在今天可能很棘手,因为多核系统的设计者没有在大型任务系统中设定可复制结果的目标。我讨厌看到人们因为过去的研究是“老”的,没有预见到今天的环境而忽视了过去的研究的好结果。
设计具有确定性的大型任务系统的问题与我们是否能够负担得起大型任务系统的问题是分开的。当任务无法以低廉的成本启动时,我们将无法负担由这些任务组成的大型系统。这应该会激发人们对如何降低任务启动成本的兴趣。这方面也有很多研究,也有很多成功的设计,但我们没有在文章中介绍。
显示所有2评论