RaftLib - RaftLib

RaftLib
Rl.svg
Оригинальный автор (ы)Джонатан Бирд
изначальный выпускконец 2014 (конец 2014)
Стабильный выпуск
0.9 / январь 2020 (2020-01)
Предварительный выпуск
1.0a / 18 мая 2020 г.; 6 месяцев назад (2020-05-18)
Написано вC ++
Операционная системаLinux, macOS, Windows
ТипАналитика данных, HPC, обработка сигналов, машинное обучение, алгоритмы, большие данные
ЛицензияЛицензия Apache 2.0
Интернет сайтwww.raftlib.io

RaftLib[1] - это портативная система параллельной обработки, цель которой - обеспечить исключительную производительность при одновременном повышении производительности программистов. Это позволяет программисту собирать массово-параллельную программу (как локальную, так и распределенную) с использованием простых операторов, подобных iostream. RaftLib обрабатывает потоки, выделение памяти, размещение памяти и автоматическое распараллеливание вычислительных ядер.[2] Он позволяет создавать приложения из цепочек вычислительных ядер, образующих задачу и конвейерный параллельный вычислительный граф. Программы написаны на C ++ (хотя планируются другие языковые привязки).

пример

Вот пример Hello World в демонстрационных целях:[3]

#включают <raft>#включают <raftio>#включают <cstdlib>#включают <string>класс Здравствуй : общественный плот::ядро{общественный:    Здравствуй() : плот::ядро()    {       вывод.addPort< стандартное::нить >( "0" );     }    виртуальный плот::kstatus пробег()    {        вывод[ "0" ].толкать( стандартное::нить( "Привет, мир п" ) );        вернуть( плот::остановка );     }};intосновной( int argc, char **argv ){    / ** создать экземпляр ядра печати ** /    плот::Распечатать< стандартное::нить > п;    / ** создать экземпляр ядра hello world ** /    Здравствуй Привет;    / ** создаем объект карты ** /    плот::карта м;    / ** добавляем ядра на карту, и hello, и p выполняются одновременно ** /    м += Привет >> п;    / ** выполнить карту ** /    м.EXE();    вернуть( EXIT_SUCCESS );}

Рекомендации

  1. ^ «RaftLib: библиотека шаблонов C ++ для высокопроизводительной потоковой параллельной обработки» (PDF). http://www.jonathanbeard.io/pdf/blc15.pdf. Получено 2016-08-10.CS1 maint: location (ссылка на сайт)
  2. ^ «Онлайн-моделирование и настройка систем параллельной обработки потоков» (PDF). http://www.jonathanbeard.io//pdf/beard-thesis.pdf. Получено 2016-08-10.
  3. ^ "Hello World Example". http://raftlib.io. Получено 2016-08-10.

внешняя ссылка