有的时候,那些程序中只读的数据可以被复制给多个处理器。比如前面提到的求某个项目集在事务数据库中出现的频度。一种可能的方法是将事务数据库进行划分,然后每个处理器分别计算出项目集在本地事务数据库中的频度,最后对局部的频度进行归约。很容易看出,每个处理器都需要一份完整的项目集数据结构,如果采用一个全局共享的查找结构,会造成很多的交互(对数据库中的每个事务的处理,都需要访问它)。由于这个查找结构对所有的处理器都是只读的,所以完全可以给每个处理器分配一个自己的版本。这种方式,实际上将程序中共享的数据结构变成了处理器(任务)私有的数据结构(这种技术称为数据私有化),被广义的称为数据复制。由于数据复制通过增加总体存储器使用量的同时,减少了交互的次数,所以对存储器数量不是瓶颈的应用来说,可以提高性能。
|