Implementing generalized deep-copy in MPI
Author(s) -
Joss Whittle,
Rita Borgo,
Mark W. Jones
Publication year - 2016
Publication title -
peerj computer science
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.927
H-Index - 70
ISSN - 2376-5992
DOI - 10.7717/peerj-cs.95
Subject(s) - computer science , pointer (user interface) , serialization , tree traversal , programming language , data structure , implementation , bespoke , parallel computing , debugger , distributed computing , copying , header , process (computing) , variety (cybernetics) , theoretical computer science , debugging , artificial intelligence , computer network , political science , law
In this paper, we introduce a framework for implementing deep copy on top of MPI. The process is initiated by passing just the root object of the dynamic data structure. Our framework takes care of all pointer traversal, communication, copying and reconstruction on receiving nodes. The benefit of our approach is that MPI users can deep copy complex dynamic data structures without the need to write bespoke communication or serialize/deserialize methods for each object. These methods can present a challenging implementation problem that can quickly become unwieldy to maintain when working with complex structured data. This paper demonstrates our generic implementation, which encapsulates both approaches. We analyze the approach with a variety of structures (trees, graphs (including complete graphs) and rings) and demonstrate that it performs comparably to hand written implementations, using a vastly simplified programming interface. We make the source code available completely as a convenient header file
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom