Skip to content

Automated Mirror of Parabix - Note: the repository does not accept github pull requests at this moment. Please submit your patches at the official repository https://cs-git-research.cs.surrey.sfu.ca/cameron/parabix-devel

Notifications You must be signed in to change notification settings

parabix/parabix-devel-mirror

Repository files navigation

Parabix

Parabix technology is a high-performance programming framework for streaming text processing applications, leveraging both SIMD and multicore parallel processing features.

pipeline status Gitter

Documentation

For more information about Parabix, please check our wiki or reach out to us on Gitter.

Tools

Parabix includes a set of built-in tools, such as icgrep, which is a very fast regular expression search program.

Requirements

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 version 1.61 or better.
  • Z3 Theorem Prover.
  • An LLVM system version 5 or better.

Build

  • 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 ..
  • 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

Build Parabix as a lib

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 ..

Papers

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.

License

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.

About

Automated Mirror of Parabix - Note: the repository does not accept github pull requests at this moment. Please submit your patches at the official repository https://cs-git-research.cs.surrey.sfu.ca/cameron/parabix-devel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published