RaftLib

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
RaftLib
Rl.svg
Original author(s) Jonathan Beard
Initial release late 2014 (late 2014)
Preview release
0.7a / May 15, 2016; 2 years ago (2016-05-15)
Written in C++
Operating system Linux, macOS, Windows (planned)
Type Data analytics, HPC, Signal Processing, Machine Learning, Algorithms, Big Data
License Apache License 2.0
Website raftlib.io

RaftLib[1] is a portable parallel processing system that aims to provide extreme performance while increasing programmer productivity. It enables a programmer to assemble a massively parallel program (both local and distributed) using simple iostream-like operators. RaftLib handles threading, memory allocation, memory placement, and auto-parallelization of compute kernels.[2] It enables applications to be constructed from chains of compute kernels forming a task and pipeline parallel compute graph. Programs are authored in C++ (although other language bindings are planned).

Example

Here is a Hello World example for demonstration purposes:[3]

#include <raft>
#include <raftio>
#include <cstdlib>
#include <string>

class hi : public raft::kernel
{
public:
    hi() : raft::kernel()
    {
       output.addPort< std::string >( "0" ); 
    }

    virtual raft::kstatus run()
    {
        output[ "0" ].push( std::string( "Hello World\n" ) );
        return( raft::stop ); 
    }
};

int
main( int argc, char **argv )
{
    /** instantiate print kernel **/
    raft::print< std::string > p;
    /** instantiate hello world kernel **/
    hi hello;
    /** make a map object **/
    raft::map m;
    /** add kernels to map, both hello and p are executed concurrently **/
    m += hello >> p;
    /** execute the map **/
    m.exe();
    return( EXIT_SUCCESS );
}

References

  1. ^ "RaftLib: A C++ Template Library for High Performance Stream Parallel Processing" (PDF). http://www.jonathanbeard.io/pdf/blc15.pdf. Retrieved 2016-08-10.
  2. ^ "Online Modeling and Tuning of Parallel Stream Processing Systems" (PDF). http://www.jonathanbeard.io//pdf/beard-thesis.pdf. Retrieved 2016-08-10.
  3. ^ "Hello World Example". http://raftlib.io. Retrieved 2016-08-10.

External links

  • The RaftLib Project Page
  • RaftLib User Wiki
  • Project GitHub Repository
  • CPPNow RaftLib Tutorial Session
  • A Short Introduction to Stream Processing
  • Parallel BZip2 Implementation Using RaftLib
Retrieved from "https://en.wikipedia.org/w/index.php?title=RaftLib&oldid=825752212"
This content was retrieved from Wikipedia : http://en.wikipedia.org/wiki/RaftLib
This page is based on the copyrighted Wikipedia article "RaftLib"; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA). You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA