RaftLib - RaftLib
| Oprindelige forfatter (e) | Jonathan Beard |
|---|---|
| Første udgivelse | sidst i 2014 |
| Stabil frigivelse | 0,9 / januar 2020
|
| Eksempel på frigivelse | 1.0a / 18. maj 2020
|
| Skrevet i | C ++ |
| Operativ system | Linux , macOS , Windows |
| Type | Dataanalyse, HPC, signalbehandling, maskinindlæring, algoritmer, big data |
| Licens | Apache-licens 2.0 |
| Internet side | www |
RaftLib er et bærbart parallelbehandlingssystem, der har til formål at yde ekstrem ydelse og samtidig øge programmørens produktivitet. Det gør det muligt for en programmør at samle et massivt parallelt program (både lokalt og distribueret) ved hjælp af enkle iostream-lignende operatører. RaftLib håndterer threading, hukommelsesallokering, hukommelsesplacering og automatisk parallelisering af computerkerner. Det gør det muligt at konstruere applikationer fra kæder af beregningskerner, der danner en opgave og pipeline parallel beregningsgraf. Programmer er skrevet i C ++ (selvom andre sprogbindinger er planlagt).
Eksempel
Her er et Hello World-eksempel til demonstrationsformål:
#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 );
}