Redistribution mechanism for associative distributed collections of objects
Daisuke Fujishima, Tomio Kamada · 2016
The field of parallel computing has experienced an increase in the number of computing nodes and parallel computing has widened its application to include computations that have irregular features. Some parallel programming languages handle object data structures and offer marshaling/unmarshaling mechanisms to transport them. To manage data elements spread over computing nodes, some research on distributed collections has been conducted. This study proposes a distributed collection library that can handle multiple collections of object elements and change their distributions while maintaining the associativity between their elements. This library is implemented on an object-oriented parallel programming language, X10. We suppose pairs of associative collections such as vehicles and streets in a traffic simulation. When many vehicles are concentrated on streets assigned to certain computing nodes, some of those streets should be moved to other nodes. Our library supports the programmer in easily distributing the associative collections over the computing nodes and re-allocating their elements while maintaining the data sharing relationship among associative elements. The programmer can describe the associativity between objects using both declarative and procedural methods.