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 TraversalSpecification
.
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.