RaftLib - RaftLib
Оригинальный автор (ы) | Джонатан Бирд |
---|---|
изначальный выпуск | конец 2014 |
Стабильный выпуск | 0.9 / январь 2020 |
Предварительный выпуск | 1.0a / 18 мая 2020 г. |
Написано в | C ++ |
Операционная система | Linux, macOS, Windows |
Тип | Аналитика данных, HPC, обработка сигналов, машинное обучение, алгоритмы, большие данные |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | www |
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 );}
Рекомендации
- ^ «RaftLib: библиотека шаблонов C ++ для высокопроизводительной потоковой параллельной обработки» (PDF). http://www.jonathanbeard.io/pdf/blc15.pdf. Получено 2016-08-10.CS1 maint: location (ссылка на сайт)
- ^ «Онлайн-моделирование и настройка систем параллельной обработки потоков» (PDF). http://www.jonathanbeard.io//pdf/beard-thesis.pdf. Получено 2016-08-10.
- ^ "Hello World Example". http://raftlib.io. Получено 2016-08-10.