Parabix technology is a high-performance programming framework for streaming text processing applications, leveraging both SIMD and multicore parallel processing features.
For more information about Parabix, please check our wiki or reach out to us on Gitter.
Parabix includes a set of built-in tools, such as icgrep
, which is a very fast regular expression search program.
To build Parabix, you need a development environment that meets a few requirements.
- Standard C++ development tools including git, C++, etc.
- A modern C++ compiler supporting at least C++ 14.
- The
cmake
build system version 2.8 or better. Boost
libraries version1.61
or better.Z3
Theorem Prover.- An
LLVM
system version5
or better.
- Clone parabix-devel from the repository:
git clone https://cs-git-research.cs.surrey.sfu.ca/cameron/parabix-devel.git
- Create a build subdirectory
cd parabix-devel
mkdir build
cd build
- Create the makefiles
cmake -DCMAKE_BUILD_TYPE=Release ..
- Note: if you have built/installed a custom LLVM version, you may need to override cmake's default search path.
cmake -DCMAKE_PREFIX_PATH=path/to/libllvm -DCMAKE_BUILD_TYPE=Release ..
- Note: if you have built/installed a custom LLVM version, you may need to override cmake's default search path.
make
- If you wish to run the test suite, while you are still in the build directory, run the following command:
make check
In the configuration above, all compiled tools will then be found on /path/to/parabix-devel/build/bin
To build Parabix as a single lib, run the following command:
cmake -DCMAKE_BUILD_TYPE=Release -DARTIFACT_MODE=Single -DARTIFACT_TYPE=Shared -DGENERATE_TOOLS=OFF ..
Bitwise Data Parallelism with LLVM: The ICgrep Case Study. Robert D. Cameron, Nigel Medforth, Dan Lin, Dale Denis, William N. Sumner. ICA3PP (2) 2015: 373-387
Bitwise data parallelism in regular expression matching. Robert D. Cameron, Thomas C. Shermer, Arrvindh Shriraman, Kenneth S. Herdy, Dan Lin, Benjamin R. Hull, Meng Lin. PACT 2014: 139-150
icXML: Accelerating a Commercial XML Parser Using SIMD and Multicore Technologies. Presented at Balisage: The Markup Conference 2013, Montréal, Canada, August 6 - 9, 2013.
Parabix: Boosting the Efficiency of Text Processing on Commodity Processors, 18th International Symposium on High Performance Computer Architecture in New Orleans, Louisiana, February 2012
Parallel Scanning with Bitstream Addition: An XML Case Study, Euro-Par 2011 Conference, Bordeaux, France, September 2011.
Parallel Bit Stream Technology as a Foundation for XML Parsing Performance, 2009 International Symposium on Processing XML Efficiently: Overcoming Limits on Space, Time, or Bandwidth, Montreal, Canada, August 2009.
Architectural Support for SIMD Text Processing with Parallel Bit Streams: The Inductive Doubling Principle, Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '09), Washington, DC, March 2009.
LLVM files are governed by the LLVM Release License in LLVM-LICENSE.txt. Parabix
is governed by Open Software License 3.0
in OSL3.0.txt.