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.
February 2015: Check out icGrep 1.0!
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.
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.
The PabloB language is an intermediate representation that represents the result of translating programs on arbitrary-length bitstreams into block-at-a-time processing. It is currently a work in process. The PabloB grammar is defined using Scatter. Here is an example of the concrete syntax.
Parabix Application Framework
This framework enables people to write Parabix based application easily. Details: Application Framework
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: Very Fast Regular Expression Search
icGrep is the latest demonstration project for Parabix technology, offering a full-featured grep program with world-beating performance and broad support for Unicode regular expression matching.
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 Characterers, Inc., holds several patents on Parabix technology, but has dedicated those patents free for use in open-source software, teaching and research.