RaftLib
Originalförfattare | Jonathan Beard |
---|---|
Initial release | sent 2014 |
Stabil frisättning | 0,9 / januari 2020
|
Förhandsgranska release | 1.0a / 18 maj 2020
|
Skrivet i | C++ |
Operativ system | Linux , macOS , Windows |
Typ | Dataanalys, HPC, Signalbehandling, Machine Learning, Algoritmer, Big Data |
Licens | Apache-licens 2.0 |
Hemsida |
RaftLib är ett bärbart parallellbearbetningssystem som syftar till att ge extrem prestanda samtidigt som programmerarens produktivitet ökar. Det gör det möjligt för en programmerare att sätta ihop ett massivt parallellt program (både lokalt och distribuerat) med enkla iostream-liknande operatorer. RaftLib hanterar trådning, minnesallokering, minnesplacering och autoparallellisering av beräkningskärnor. Det gör att applikationer kan konstrueras från kedjor av beräkningskärnor som bildar en parallell beräkningsgraf för uppgift och pipeline. Program skapas i C++ (även om andra språkbindningar är planerade).
Exempel
Här är ett Hello World-exempel för demonstrationsändamål:
#include <raft> #include <raftio> #include <cstdlib> #include <string> class hi : public raft :: kernel { public : hi () : raft :: kernel () { output . addPort < std :: string > ( "0" ); } virtuell flott :: kstatus run () { output [ "0" ]. push ( std :: string ( "Hello World \n " ) ); retur ( flotte :: stopp ); } }; int main ( int argc , char ** argv ) { /** instantiate print kernel **/ raft :: print < std :: string > p ; /** instansiera hello world kernel **/ hej hej ; /** gör ett kartobjekt **/ flotte :: karta m ; /** lägg till kärnor till kartan, både hello och p exekveras samtidigt **/ m += hello >> p ; /** exekvera kartan **/ m . exe (); return ( EXIT_SUCCESS ); }
externa länkar
- RaftLib-projektsidan
- RaftLib User Wiki
- Project GitHub Repository
- Handledningssession för CPPNow RaftLib
- En kort introduktion till strömbehandling
- Parallell BZip2-implementering med hjälp av RaftLib
Kategori: