VTD-XML Parsing Performance Optimization based on Helper Thread Sampling Prefetching

With the development of cloud computing, big data and AI technologies, the volume of data is expanding rapidly, and the size of XML documents is also increasing. How to improve the processing efficiency of large-scale XML document data has become a new research hotspot. At present, under the multi-core processor platform, the research work on XML parsing and query is mainly focused on parallel parsing and query, and the performance of XML parsing and query has been greatly improved. However, due to the semi-structured characteristic of XML document and the irregular memory access mode, there are a large number of cache misses in the parsing and query programs, and the access delay becomes the bottleneck of the continuous improvement of performance. To solve this problem, this paper proposes a sample-based helper thread prefetching technology. By using idle multi-core resources, the data required by the main thread is predictably prefetched to the last level of shared cache in advance, so as to hide the delay caused by memory access operations, and achieve the goal of optimizing performance. The experimental results show that the cache miss is reduced by more than 80% after helper thread prefetching, and the total XML parsing performance are improved about 10%, the hot function’s performance is improved about 30%.

[1]  Zhimin Gu,et al.  Helper Thread Prefetching Control Framework on Chip Multi-processor , 2015, International Journal of Parallel Programming.

[2]  Zhimin Gu,et al.  Acceleration of XML Parsing through Prefetching , 2013, IEEE Transactions on Computers.

[3]  Zhimin Gu,et al.  Solving Parameter Selection Problem of Helper Thread Prefetching via Realtime Hardware Performance Monitoring , 2012, 2012 13th International Conference on Parallel and Distributed Computing, Applications and Technologies.

[4]  Zhimin Gu,et al.  Estimating Effective Prefetch Distance in Threaded Prefetching for Linked Data Structures , 2012, International Journal of Parallel Programming.

[5]  Jianwen Zhu,et al.  A 1 cycle-per-byte XML parsing accelerator , 2010, FPGA '10.

[6]  John W. Lockwood,et al.  Reconfigurable content-based router using hardware-accelerated language parser , 2008, TODE.

[7]  Ying Zhang,et al.  Simultaneous transducers for data-parallel XML parsing , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[8]  Ying Zhang,et al.  Parallel XML Parsing Using Meta-DFAs , 2007, Third IEEE International Conference on e-Science and Grid Computing (e-Science 2007).

[9]  Ying Zhang,et al.  A Static Load-Balancing Scheme for Parallel XML Parsing on Multicore CPUs , 2007, Seventh IEEE International Symposium on Cluster Computing and the Grid (CCGrid '07).

[10]  Wei Lu,et al.  A Parallel Approach to XML Parsing , 2006, 2006 7th IEEE/ACM International Conference on Grid Computing.

[11]  Michiaki Tatsubori,et al.  An adaptive, fast, and safe XML parser based on byte sequences memorization , 2005, WWW '05.

[12]  Yogesh L. Simmhan,et al.  On Building Parallel & Grid Applications: Component Technology and Distributed Services , 2004, Proceedings of the Second International Workshop on Challenges of Large Applications in Distributed Environments, 2004. CLADE 2004..

[13]  C. Kesselman,et al.  A Metadata Catalog Service for Data Intensive Applications , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[14]  David J. Lilja,et al.  Data prefetch mechanisms , 2000, CSUR.

[15]  Jan MAn VTD-XML: The Future of XML , 2013 .

[16]  Chen Wei-bin,et al.  XML Parsing Schema Based on Parallel Sub-tree Construction , 2011 .