Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P parabix-devel
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 9
    • Issues 9
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • cameron
  • parabix-devel
  • Wiki
  • Home

Home · Changes

Page history
Update home authored May 10, 2020 by cameron's avatar cameron
Hide whitespace changes
Inline Side-by-side
Showing with 31 additions and 21 deletions
+31 -21
  • home.md home.md +31 -21
  • No files found.
home.md
View page @ b8b27122
......@@ -4,18 +4,46 @@ Parabix technology is a high-performance programming framework for streaming
text processing applications, leveraging both SIMD and multicore
parallel processing features.
## Programming Model: Kernels + Stream Sets = Programs
Parabix programming is based on the concepts of computational kernels operating on sets of data streams.
### Data Streams and Stream Sets
Data streams are streams of data fields all of a given bit width. If the bit width is N, the type
of the field is said to be `iN`, an integer of N bits. Bit streams are streams of type `i1`.
Stream sets are sets of data streams all of the same type and in one-to-one correspondence.
An `8 x i1`
stream set is a set of eight parallel bit streams.
All streams in the set are of the same length and are allocated and processed together by the underlying system.
A `1 x i8` stream is a stream of bytes. Most often, Parabix programs operation read byte streams from
files or other input sources, transform those streams into sets of bit streams and process those bit streams using
bitwise logic and shifting.
### Kernels: Stream Processing Functions
Parabix programs are assembled as sequences of kernels operating on stream sets. Kernels are generally
just functions, taking stream sets as input and producing stream sets as output.
## Parabix Transform
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
one bit per character code unit. The byte stream is represented as a `1 x i8` stream set.
The transposed parallel bit streams comprise a `8 x i1` stream set of the same length of the
basis streams. The code units of the byte stream
may be ASCII characters or UTF-8 bytes, for example. The Parabix transform extracts
the bits of each byte and produces separate streams for each of them.
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 transposition process is implemented by the Parabix S2P kernel (S2P stands for serial-to-parallel).
See the [Parabix Transform](ParabixTransform) page for details.
## Alphabets, Character Classes, Unicode
......@@ -38,24 +66,6 @@ input: This is just 1 abbreviated example of character stream input containing
Read about the [Parabix Character Class Compilers](CharacterClassCompiler) for more information.
## Programming Model: Kernels + Stream Sets = Programs
Parabix programming is based on the concepts of computational kernels operating on sets of data streams.
### Data Streams and Stream Sets
Data streams are streams of data fields all of a given bit width. If the bit width is N, the type
of the field is said to be `iN`, an integer of N bits. Bit streams are streams of type `i1`.
Stream sets are sets of data streams all of the same type and in one-to-one correspondence. An `8 x i1`
stream set is a set of eight parallel bit streams. All streams in the set are of the same length and are allocated and processed together by the underlying system.
### Kernels: Stream Processing Functions
Parabix programs are assembled as sequences of kernels operating on stream sets. Kernels are generally
just functions, taking stream sets as input and producing stream sets as output.
## Build and Test
......
Clone repository
  • Bracket Matching
  • CSV Validation
  • CSVediting
  • CSVparsing
  • Character Code Compilers
  • KernelLibrary
  • Pablo
  • ParabixTransform
  • Parallel Deletion
  • Parallel Hashing
  • Performance Testing Script
  • Shuffle Pattern Library
  • StaticCCC
  • String Insertion
  • UCD: Unicode Property Database and Compilers
View All Pages