Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

RaftLib

From Wikipedia, the free encyclopedia
RaftLib
Original authorJonathan Beard
Releaselate 2014
Stable release
0.9 / January 2020 (2020-01)
Preview release
1.0a / May 18, 2020; 6 years ago (2020-05-18)
Written inC++
Operating systemLinux, macOS, Windows
TypeData analytics, HPC, Signal Processing, Machine Learning, Algorithms, Big Data
LicenseApache License 2.0
Websitewww.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

[edit]

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

import <raft>;
import <raftio>;

import std;

using String = std::string;

using RaftKernel = raft::kernel;
using RaftKernelStatus = raft::kstatus;
using RaftMap = raft::map;
using RaftPrint = raft::print;

class HelloWorld : public RaftKernel {
public:
    HelloWorld() {
        output.addPort<String>("0"); 
    }

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

int main(int argc, char* argv[]) {
    // instantiate print kernel
    RaftPrint<String> p;

    // instantiate hello world kernel
    HelloWorld hello;

    // make a map object
    RaftMap m;

    // add kernels to map, both hello and p are executed concurrently
    m += hello >> p;

    // execute the map
    m.exe();

    return 0;
}

References

[edit]
  1. "RaftLib: A C++ Template Library for High Performance Stream Parallel Processing" (PDF). Retrieved 2016-08-10.
  2. "Online Modeling and Tuning of Parallel Stream Processing Systems" (PDF). Retrieved 2016-08-10.
  3. "Hello World Example". Retrieved 2016-08-10.
[edit]