The SPLITT class diagram
The figure below represents a UML class diagram of the SPLITT library:
The library is divided in two layaers:
- a framework layer defining the main logical and data structures. These include a linear algorithm for initial reordering and splitting of the input tree into generations of nodes, which can be visited in parallel, both during post-order as well as pre-order traversal, and a growing collection of pre-order and post-order traversal algorithms, targeting different parallelization modes (e.g. queue-based versus range-based parallelization) on different computing devices (currently implemented for CPUs only).
- a user layer at which the user of the library must write a
TraversalSpecification-class defining all typedefs and methods of the interface
The bridge between the two layers is provided by an object of the
TraversalTask template class. Once the
TraversalSpecification implementation has been written, the user instantiates a
TraversalTask object passing the tree and the input data as arguments.