Welcome to the Parabix Technology Home Page
Parabix technology is a high-performance programming framework for streaming text processing applications, leveraging both SIMD and multicore parallel processing features.
- May 2, 2016: Check out the ParabixOS project!
- November 18-20, 2015: Join us in Zhangjiajie, China for our presentation at ICA3PP 2015.
- October 28-29, 2015: Join us at the 2015 LLVM Developers' Meeting for Parabix-LLVM discussion.
- October 26-27, 2015: Join us at Unicode Conference 39 for our presentation of Unicode regular expression matching in icgrep.
- September 2015: Look at our plans for additional Parabix regular expression facilities in the Parabix Regular Expression Road Map
- February 2015: Check out icGrep 1.0 offering Gigabyte Per Second Performance!
The Parabix framework is based on the concept of parallel bit streams, a fundamentally new transform representation of text. Byte-oriented character stream data is first transformed into eight parallel bit streams, each bit stream comprising one bit per character code unit. Code units may be ASCII characters or UTF-8 bytes, for example, with one parallel bit stream defined for each of bit 0 through bit 7 of each code unit. Given such a representation, the 128-bit SIMD (single-instruction multiple-data) registers of the SSE (Intel architecture SIMD technology) or Altivec (Power PC architecture) may be used to process 128 code unit positions at a time.
See the Parabix Transform page for details.
See the Parabix Techniques page for information on how to use the Parabix transform representation for various applications.
The Pablo Language and Compilers
The Pablo Language allows parallel bit stream programs to be conveniently written using primitives that manipulate arbitrary-length bitstreams. Pablo comes in two different forms: the python Pablo language for direct generation of C++ programs from Pablo language source files, and the Pablo intermediate representation that can be translated to LLVM IR.
IDISA Run-Time Libraries
The IDISA project defines an abstraction for portable SIMD programming featuring support for operations at all power-of-2 field widths as well as transitions between those field-widths (inductive doubling architecture).
Parabix with LLVM
The Parabix-LLVM project is investigating the use of LLVM as a back-end for Parabix tools and applications.
ICXML: Incorporating Parabix Technology into the Xerces-C XML Parser
ICXML (TM) is a highly-accelerated version of the widely-reknowned Xerces-C XML Parser. Developed by International Characters, Inc., in partnership with our SFU research lab, ICXML systematically incorporates Parabix and other acceleration technologies into Xerces. Speedups of 1.5X and more have been measured with various applications on single core, while our experimental dual core applications have seen acceleration of more than 2X over Xerces.
We are pleased that International Characters, Inc. is releasing ICXML as open source software hosted here under the Open Software License 3.0.
icGrep: Gigabyte Per Second Regular Expression Search
Parabix software as provided here as open source software under Open Software License 3.0. Commercial licensing is available through International Characters, Inc., an SFU spin-off company based on Prof. Cameron's research. Parabix is a trademark of International Characters. International Characters, Inc., holds several patents on Parabix technology, but has dedicated those patents free for use in open-source software, teaching and research.