RaftLib - RaftLib

RaftLib
Rl.svg
Oprindelige forfatter (e) Jonathan Beard
Første udgivelse sidst i 2014  ( sidst i 2014 )
Stabil frigivelse
0,9 / januar 2020  ( 2020-01 )
Eksempel på frigivelse
1.0a / 18. maj 2020 ; 8 måneder siden  ( 2020-05-18 )
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 .io

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 );
}

Referencer

eksterne links