RaftLib

RaftLib
Originalförfattare Jonathan Beard
Initial release sent 2014 ( sent 2014 )
Stabil frisättning
0,9 / januari 2020 ( 2020-01 )
Förhandsgranska release
1.0a / 18 maj 2020 ; för 2 år sedan ( 2020-05-18 )
Skrivet i C++
Operativ system Linux , macOS , Windows
Typ Dataanalys, HPC, Signalbehandling, Machine Learning, Algoritmer, Big Data
Licens Apache-licens 2.0
Hemsida www .raftlib .io

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