RaftLib

RaftLib
Original author(s)Jonathan Beard
Initial releaselate 2014 (late 2014)
Stable release
0.9 / January 2020 (2020-01)
Preview release
1.0a / May 18, 2020; 3 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 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. 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:

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

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

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

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

This page was last updated at 2024-02-11 09:23 UTC. Update now. View original page.

All our content comes from Wikipedia and under the Creative Commons Attribution-ShareAlike License.


Top

If mathematical, chemical, physical and other formulas are not displayed correctly on this page, please useFirefox or Safari