Abstract
This paper proposes a method to parallelize the recursive preorder traversal algorithm on an ordered general tree. The method is based on building and winding call stacks, which are achieved by statically prepared initializing and terminating functions. In the method, an ordered general tree is split in a manner in which the nodes of a consecutive preorder range are assigned to a worker thread. At that time, all worker threads are aligned in order of the worker IDs, and an earlier worker thread is assigned an earlier preorder range. Each node is processed exactly once by only one worker thread. This paper also provides a set of proofs to show that each worker thread can start/stop its recursive preorder traversal from/at an intended place in a tree. The method is sufficiently general to be applicable to existing applications that adopt the recursive preorder traversal such as Protocol Buffers, which is a type of serializer/deserializer tool. The evaluation results show that the serialization result writing time of the parallelized Protocol Buffers is 1.78 fold shorter than that for normal Protocol Buffers when serializing 40,320 double values using 5 worker threads.
Original language | English |
---|---|
Title of host publication | Proceedings - 2016 IEEE 30th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2016 |
Publisher | IEEE Computer Society |
Pages | 570-579 |
Number of pages | 10 |
Volume | 2016-August |
ISBN (Electronic) | 9781509021406 |
DOIs | |
Publication status | Published - 2016 Aug 2 |
Event | 30th IEEE International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2016 - Chicago, United States Duration: 2016 May 23 → 2016 May 27 |
Other
Other | 30th IEEE International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2016 |
---|---|
Country/Territory | United States |
City | Chicago |
Period | 16/5/23 → 16/5/27 |
Keywords
- Ordered general tree
- Parallelization
- Protocol Buffers
- Recursive preorder traversal
ASJC Scopus subject areas
- Computational Theory and Mathematics
- Computer Networks and Communications
- Hardware and Architecture
- Software