Most previous work in this area investigates either hashing or caching-based strategies. Hashing distributes the objects uniformly among the processors, which gives up the locality of the application. Caching exploits locality by minimizing the distances to the accessed objects, which, however, can produce bottlenecks in the network.
In this paper, we present an approach that combines hashing and caching techniques. We introduce static and dynamic strategies. For the static strategies, we assume that frequencies of read and write accesses for all processor-object pairs are given in advance. For the dynamic strategies, we assume no knowledge about the access pattern. We show that our strategies achieve optimal or close-to-optimal congestion for the most relevant classes of bandwidth limited networks, e.g., meshes and clustered networks.