A case study in SIMD text processing with parallel bit streams: UTF-8 to UTF-16 transcoding

  title={A case study in SIMD text processing with parallel bit streams: UTF-8 to UTF-16 transcoding},
  author={Robert D. Cameron},
  journal={Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming},
  • R. Cameron
  • Published 20 February 2008
  • Computer Science
  • Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
High performance SIMD text processing using the method of parallel bit streams is introduced with a case study of UTF-8 to UTF-16 transcoding. A forward transform converts byte-oriented character stream data into eight parallel bit streams. Decoding, validation and computation of UTF-8 indexed UTF-16 bit streams are performed using bit-parallel logic and shifting operations. Conversion from UTF-8 indexing to UTF-16 indexing is performed using parallel bit deletion. The inverse transform is… 

Tables from this paper

Architectural support for SWAR text processing with parallel bit streams: the inductive doubling principle

A set of simple SWAR instruction set extensions are proposed for this purpose and are shown to significantly reduce instruction count in core parallel bit stream algorithms, often providing a 3X or better improvement.

High performance XML parsing using parallel bit stream technology

A performance study comparing Parabix with the open-source Expat and Xerces parsers is carried out using the PAPI toolkit, and prospects for further performance improvements are outlined.

Multidimensional Parallelization for Streaming Text Processing Applications Based on Parabix Framework

This dissertation investigates the further development of the ParabIX framework to incorporate multidimensional parallelization, combining Parabix methods with several different models of multithreading such as task parallelism, data parallelism and pipeline parallelism as well as with GPU-based SIMT processing.

Parallel Scanning with Bitstream Addition: An XML Case Study

A parallel scanning method using the concept of bitstream addition is introduced and studied in application to the problem of XML parsing and well-formedness checking, yielding a dramatic speed-up over traditional alternatives employing byte-at-a-time parsing.

Parabix: Boosting the efficiency of text processing on commodity processors

This paper advocates and develops Parabix as a general framework and toolkit, describing the software toolchain and run-time support that allows applications to exploit modern SIMD instructions for high performance text processing and generalizing the techniques to ensure that they apply across a wide variety of applications and architectures.

Systematic Support of Parallel Bit Streams in LLVM

Modifications to LLVM are investigated to incorporate all the SIMD processing requirements of Parabix both to increase the portability of applications and to create additional opportunities to optimize those operations in the context of code generation.

s2k: A parallel language for streaming text extraction and transformations

This work defines s2k, a global-view parallel programming language for streaming text extraction and transformations that integrates stream programming abstractions and parallel bitstream programming methods.

Bitwise data parallelism in regular expression matching

  • R. CameronT. Shermer Meng Lin
  • Computer Science
    2014 23rd International Conference on Parallel Architecture and Compilation (PACT)
  • 2014
A new parallel algorithm for regular expression matching is developed and applied to the classical grep (global regular expression print) problem and can substantially outperform traditional grep implementations based on NFAs, DFAs or backtracking.

High-performance regular expression scanning on the Cell/B.E. processor

This work presents an algorithm and a set of techniques for using multi-core features such as multiple threads and SIMD instructions to perform parallel regexp-based tokenization, and presents a family of optimized kernels that implement the algorithm.

Top-Performance Tokenization and Small-Ruleset Regular Expression Matching

  • D. Scarpazza
  • Computer Science
    International Journal of Parallel Programming
  • 2010
This work presents a technique to design tokenizers that exploit multiple threads and wide SIMD units to process multiple independent streams of data at a high throughput and shows the approach’s viability by presenting a family of tokenizer kernels optimized for the Cell/B.E. processor.



Performance Analysis of XML APIs

This paper discusses various aspects of SAX and other current XML APIs, and analyzes aspects of their performance through the use of micro-benchmarks demonstrating how much of current XML parsing time is being lost to inefficiencies.

XML screamer: an integrated approach to high performance XML parsing, validation and deserialization

This paper describes an experimental system in which customized high performance XML parsers are prepared using parser generation and compilation techniques, and the resulting validating processors are shown to be as fast as or in many cases significantly faster than traditional nonvalidating parsers.

XML parsing: a threat to database performance

Comparing relational database performance shows that the desired response times and transaction rates over XML data can not be achieved without major improvements in XML parsing technology, and identifies research topics which are most promising for XML parser performance in database systems.

Hacker's Delight

The term "hacker" in the title is meant in the originalsense of an aficionado of computers—someone who enjoys making computers do new things, or do old things in a new and clever way.

On the Problem of Coupling Java Algorithms and XML Parsers (Invited Paper)

  • G. Psaila
  • Computer Science
    17th International Workshop on Database and Expert Systems Applications (DEXA'06)
  • 2006
The current state of the art of this young research area trying to improve techniques for coupling Java programs and XML parsers and API is shown.

u8u16 – A High-Speed UTF-8 to UTF-16 Transcoder Using Parallel Bit Streams

  • Technical Report TR 2007- 18, School of Computing Science, Simon Fraser University, Burnaby, BC, Canada, June 2007.
  • 2007

A Detailed Look at the Characteristics of XML Parsing

  • Proceedings of the 1st Workshop on Building Block Engine Architectures for Computers and Networks (BEACON ’04). Boston, MA. October, 2004.
  • 2004

Using C++ Intrinsic Functions for Pipelined Text Processing

  • O’Reilly Network, November 7, 2005.
  • 2005

Extending the World’s Most Popular Processor Architecture

  • Technology@Intel Magazine, October 2006.
  • 2006

Method and Apparatus for an Inductive Doubling Architecture

  • U.S. Patent Application 11/834,333, filed August 6, 2007.
  • 2007