Китайский |
CGraph документация

CGraph -это кроссплатформенная D- циклическая структура G- RAPH, основанная на чистом C ++ без каких-либо зависимостей 3-й части.
Вы, вместе с этим, можете создать свои собственные операторы просто и описать любые рабочие графики , такие как зависимость, паралляция, агрегация и так далее.
Учебные пособия и контактная информация показывают следующее .
1. Введение
CGraph называется [Color, Picture] на китайском языке и представляет собой кроссплатформенную структуру выполнения графического процесса без каких-либо сторонних зависимостей. Через GPipeline (Pipeline), лежащее в основе расписания, он обеспечивает функцию последовательного выполнения зависимых элементов и одновременного выполнения не зависимых элементов в планировании EDAG.
Пользователям необходимо только наследовать класс GNode (Node), реализовать метод run() подкласса и установить зависимости по мере необходимости для реализации графического выполнения или выполнения трубопровода задачи. Также можно установить различные GGroup (группы), содержащие информацию о многоузенок, чтобы управлять условным суждением, зацикливания и логики одновременного выполнения графика.
Проект предоставляет богатый тип Param (параметр) для взаимодействия данных в разных сценариях приложения. GAdapter того GEvent приведенные выше различные элементы могут быть расширены горизонтали, добавившись GAspect

Этот проект написан с использованием стандартной библиотеки Pure C ++ 11 и не имеет сторонних зависимостей. Совместим с MacOS , Linux , Windows и Android Systems, он поддерживает локальную компиляцию и вторичную разработку через CLion , VSCode , Xcode , Visual Studio , Code::Blocks , Qt Creator и другие IDE.
Для получения подробного функционального введения и использования, пожалуйста, обратитесь к контенту статьи на yimianzhiyuan.com. Связанные видео непрерывно обновляются на b.com.
- [B Station Video] CGRAPH ВВЕДЕНИЕ
- [B Station Video] Функциональная глава CGRAPH
- Комплексное введение ко всем существительным и функциональным модулям в проекте CGRAPH
- Основываясь на фактическом процессе кодирования, подробно введены конкретные сценарии использования, использование и проблемы, решенные для каждой функции.
- Подходит для детской обуви, которая хочет получить полное понимание функций и быстро начать с CGraph
- Подходит для детской обуви, заинтересованной в многопоточных программах
- 【B Видео на сайте】 приложение CGRAPH
- 【B Станция видео】 CGRAPH Share
2. Используйте демонстрацию
Mynode.h
# include " CGraph.h "
class MyNode1 : public CGraph ::GNode {
public:
CStatus run () override {
printf ( " [%s], sleep for 1 second ... n " , this -> getName (). c_str ());
CGRAPH_SLEEP_SECOND ( 1 )
return CStatus ();
}
};
class MyNode2 : public CGraph ::GNode {
public:
CStatus run () override {
printf ( " [%s], sleep for 2 second ... n " , this -> getName (). c_str ());
CGRAPH_SLEEP_SECOND ( 2 )
return CStatus ();
}
};main.cpp
# include " MyNode.h "
using namespace CGraph ;
int main () {
/* 创建一个流水线,用于设定和执行流图信息 */
GPipelinePtr pipeline = GPipelineFactory::create ();
GElementPtr a, b, c, d = nullptr ;
/* 注册节点之间的依赖关系 */
pipeline-> registerGElement <MyNode1>(&a, {}, " nodeA " );
pipeline-> registerGElement <MyNode2>(&b, {a}, " nodeB " );
pipeline-> registerGElement <MyNode1>(&c, {a}, " nodeC " );
pipeline-> registerGElement <MyNode2>(&d, {b, c}, " nodeD " );
/* 执行流图框架 */
pipeline-> process ();
/* 清空流水线中所有的资源 */
GPipelineFactory::remove (pipeline);
return 0 ;
}
Как показано на рисунке выше, когда структура графика выполняется, сначала выполняется узел a После выполнения узла a узел b и c выполняются параллельно. После того, как все узлы b и c выполняются, выполняется узел d
3. Рекомендуемое чтение
- Pure Serialist знакомит вас с простой реализацией логики графического фреймворма
- Pure Serialist знакомит вас с простой реализацией логики графического каркасного цикла
- Pure Sequencer знакомит вас с простой реализацией графической структуры-параметра доставки
- Pure Serialist знакомит вас с простой реализацией графической структуры - кондиционирующего суждения
- Чистые сиквелы знакомя с простой реализацией графических рамок-
- Pure Sequencer знакомит вас с простой реализацией инъекции графической структуры-функции
- Pure Serialist знакомит вас с простой реализацией графической структуры-механизм сообщения
- Pure Serialist знакомит вас с простой реализацией графической структуры - запуска событий
- Pure Sequencer знакомит вас с простой реализацией механизма графического фреймворта-времени-времени.
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической фреймворк-нивочика (i)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры-платформы (II)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры-платформы (III)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры-платформы (iv)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры-платежного пула (v)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры-платежного пула (VI)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры и эффективности (i)
- Pure Sequencer знакомит вас с простой реализацией оптимизации графической структуры и эффективности (II)
- Чистые сиквелы познакомили вас с простой реализацией расчета графической структуры-дистанции
- Заглавная песня CGRAPH - «Слушайте кодировщик»
- Разговор в этом году я написал cgraph
- Каково это руководить проектом, включенным в Awesome-CPP с нуля?
- Встание! После того, как производительность CGRAPH превзошла заданный процесс всесторонним образом, автор сказал, что хочет ...
- Использование оптимизации карты: сводка идей для расчета максимальной параллелизма DAG в CGraph
- Одна статья поможет вам узнать о CGraph, который длится два с половиной года.
- Авторы CGraph хотят знать, если вам нужна структура планирования EDAG
- Снижение края и повышение эффективности: краткое изложение избыточных идей резания края в cgraph
IV
- Графики: Приблизительный поиск ближайшего соседа на основе графиков
- Cthreadpool: простой и простой в использовании, мощный, отличный производительность, кроссплатформенная пул потоков C ++
- Cgraph-lite: только для насадка, самый простой CGraph, с DAG-исполнителем и функцией перевода PARAM
- Awesome-CPP: кураторский список потрясающих структур C ++ (или C), библиотек, ресурсов и блестящих вещей.
- Awesome-Workflow-Engines: курированный список потрясающих двигателей рабочих процессов с открытым исходным кодом
- Taskflow: общая назначенная параллельная и гетерогенная система программирования задач
- [B Station Video] Фактический тест сравнения производительности между CGraph и Taskflow
- Torchpipe: служение внутри Pytorch
- [B Station Video] Project Project Project Torchpipe - AI Engine Online Высокий опыт параллелизма и практическая война
- nndeploy: nndeploy-это модель сквозного развертывания. Благодаря развертыванию многоуровневых рассуждений и направленной ациклической графической модели в качестве ядра он стремится предоставлять пользователям кроссплатформенную, простую и высокопроизводительную модель.
- [B Station Video] nndeploy --- Формарная структура в конечном счете для энтегического развертывания модели AI (1)
- [B Station Video] nndeploy --- Средняя структура развертывания модели ИИ (2)
- Kuiperinfer: вы должны реализовать высокоэффективную библиотеку выводов глубокого обучения с нуля, поддерживая вывод, таких как Llama2, UNET, Yolov5 и Resnet. Реализуйте высокоэффективную библиотеку библиотеки выводов глубокого обучения шаг за шагом
- 【B Станция Video】 Kuiperinfer Sonfer Framework - структура рассуждения, ориентированную на обучение, ориентированная на обучение
- ОГРАНА: Простой способ построить трубопровод с Go.
- [B Station Video] Слушайте Alibaba Cloud's Bigwig: Egrogh
Приложение-1
[2021.05.04 - v1.0.0 - Чунель]
- Обеспечить графическую функцию выполнения и поддержку параллельных вычислений независимых узлов
[2021.05.09 - V1.1.0 - Чунель]
- Оптимизировать параллелизм во время выполнения графика
[2021.05.18 - V1.1.1 - Чунель]
- Добавить
name узла и информацию session
[2021.05.23 - V1.2.0 - Чунель]
- Предоставить функцию выполнения с одним узлом
[2021.05.29 - V1.3.0 - Чунель]
- Предоставьте функции разделения
cluster (кластер) и region (региона) и выполнения цикла - Предоставьте
tutorial , в том числе несколько примеров использования
[2021.06.14 - V1.4.0 - Чунель]
- Предоставить механизм доставки
param (параметр) - Обеспечить
group (групповую) функцию, мульти-узловые модули унаследованы от group модулей равномерно - Добавить поддержку для систем Linux
[2021.06.20 - V1.4.1 - Чунель]
- Обеспечить функцию
condition (условие) - Добавить поддержку систем Windows
[2021.06.24 - V1.5.0 - Чунель]
- Предоставьте метод создания фабрики
pipeline - Обновление
tutorial контента
[2021.07.07 - V1.5.1 - Чунель]
- Оптимизировать функциональность пула потоков. Реализовать механизм кражи задач
[2021.07.11 - V1.5.2 - Чунель]
- Оптимизировать функциональность пула потоков. Реализовать механизм автоматического регулировки потока
[2021.07.31 - V1.5.3 - Чунель]
- Оптимизировать функциональность пула потоков. Реализовать функцию сбора партии задач и оптимизировать механизм кражи задач
[2021.08.29 - v1.6.0 - Chunel]
- Предоставьте несколько функций
pipeline для оптимизации базовой логики - Обновление
tutorial контента
[2021.09.19 - v1.6.1 - Чунель]
- Предоставляет функции оператора
Lru , оператора Trie и шаблона для оптимизации основной логики - Обновление
tutorial контента
[2021.09.29 - v1.7.0 - Чунель]
- Предоставляет функцию
aspect для расширения внешнего node или функции group - Обновление
tutorial контента
[2021.10.07 - v1.7.1 - Чунель]
- Оптимизировать логику реализации
aspect (раздел), предоставить функцию параметра раздела и функцию раздела пакетного добавления - Обновление
tutorial контента
[2021.11.01 - v1.8.0 - Чунель]
- Обеспечить функцию
adapter и функцию адаптера singleton - Оптимизировать логику выполнения
pipeline - Обновление
tutorial контента
[2021.12.18 - v1.8.1 - Чунель]
- Оптимизированное возвратное значение
CStatus Информация
[2022.01.02 - V1.8.2 - Чунель]
- Предоставляет автоматическую функцию выхода времени ожидания выполнения узлов и обеспечивает функцию
task group - Предоставьте метод настройки параметров конфигурации пула пула
[2022.01.23 - V1.8.3 - Чунель]
- Предоставляет
function адаптер для реализации функциональных функций программирования - Предоставьте функцию планирования приоритета потока и предоставить функцию выполнения ЦП, связанного с потоком
- Обновление
tutorial контента
[2022.01.31 - v1.8.4 - Чунель]
- Обеспечивает функцию асинхронного выполнения
node (узла)
[2022.02.03 - V1.8.5 - Чунель]
- Предоставляет функцию
daemon для регулярного выполнения задач на графиках без потоков - Обновление
tutorial контента
[2022.04.03 - v1.8.6 - Чунель]
- Предоставьте оператору
DistanceCalculator для реализации расчетов любого типа данных и любого типа расстояния - Обновление
tutorial контента
[2022.04.05 - v2.0.0 - Chunel]
- Предоставьте функцию
domain (Domain), предоставьте абстрактную модель Ann Domain и начните поддерживать отдельные профессиональные направления - Обеспечить механизм исполнения удержания
- Обновление
tutorial контента
[2022.05.01 - v2.0.1 - Чунель]
- Оптимизировать механизм регистрации
pipeline и поддержать выполнение пользовательского порядка методов инициирования - Обеспечить сценарии компиляции в одном клике
[2022.05.29 - v2.1.0 - Chunel]
- Предоставить метод написания параметров
element - Обеспечить поддержку версии C ++ 14
- Обновление
tutorial контента
[2022.10.03 - v2.1.1 - Чунель]
- Обеспечить механизм приоритета задачи в пуле потоков
- Оптимизировать логику выполнения
group
[2022.11.03 - v2.2.0 - Chunel]
- Предоставьте функцию
message (сообщение), в основном используемая для завершения передачи данных между различными pipeline - Обновление
tutorial контента
[2022.12.24 - v2.2.1 - Чунель]
- Предоставляет функцию
TemplateNode для оптимизации метода передачи параметров - Обновление
tutorial контента
[2022.12.25 - v2.2.2 - yeshenyong]
- Оптимизировать логику выполнения графика
[2022.12.30 - v2.2.3 - Чунель]
- Предоставьте публикацию
message и функцию подписки - Обеспечивает функцию переключения двигателя выполнения
[2023.01.21 - v2.3.0 - Чунель]
- Предоставить функцию
event (событие) - Предоставьте файл
CGraph Intro.xmind , который вводит общую логику Cgraph через диаграмму мозга.
[2023.01.25 - v2.3.1 - Чунель]
- Обеспечивает поддержку версии C ++ 11. Спасибо Mirrororyuchen за предоставление соответствующих решений
[2023.02.10 - v2.3.2 - Чунель]
- Оптимизировать стратегии планирования и предоставить интерфейс настройки параметров планирования
- Английская версия readme.md доступна
[2023.02.12 - v2.3.3 - Йешенён, Чунель]
- Предоставьте функцию отображения визуального изображения Graphviz
- Предоставить функцию отслеживания ссылок параметров
[2023.02.22 - v2.3.4 - Чунель]
- Оптимизировать механизм планирования в рамках системы Windows
- Оптимизировать механизм
param и механизм event (события)
[2023.03.25 - v2.4.0 - Woodx, Chunel]
- Предоставьте запускающуюся среду Docker и файлы Dockerfile для создания среды Docker
- Предоставьте механизм управления ресурсами по расписанию
pipeline - Оптимизировать производительность планирования
[2023.05.05 - v2.4.1 - Чунель]
- Обеспечить функцию выполнения привязки потока
- Предоставляет метод максимального приобретения
pipeline . Спасибо Ханано-Юки за предоставление соответствующих решений - Обеспечивает асинхронную функцию выполнения
pipeline и функцию выхода во время выполнения
[2023.06.17 - v2.4.2 - Чунель]
- Обеспечивает функцию
MultiCondition (многокондиционирование) - Обеспечивает функции выполнения
pipeline и резюме
[2023.07.12 - v2.4.3 - Чунель]
- Оптимизировать функцию
CStatus и добавить информацию о позиционировании исключения
[2023.09.05 - v2.5.0 - Chunel]
- Обеспечивает функцию PERF для анализа производительности
pipeline - Предоставляет механизм тайм -аута для
element - Предоставьте
some (частичные) функции для оптимизации асинхронного выполнения pipeline
[2023.09.15 - v2.5.1 - Chunel]
- Обеспечивает функцию
fence - Предоставляет функцию
coordinator (координатор)
[2023.11.06 - v2.5.2 - Чунель]
- Оптимизировать функцию
message (сообщения), которая может установить метод обработки при написании блокировки и сократить количество времени копирования памяти - Добавить
example связанный контент, чтобы предоставить некоторые простые реализации для различных отраслей промышленности - Оптимизировать производительность планирования
[2023.11.15 - v2.5.3 - Чунель]
- Предоставить файл определения
proto - Добавьте
mutable функцию, чтобы обеспечить синтаксис регистрации зависимости
[2024.01.05 - v2.5.4 - Chunel]
- Предоставьте
test контент, включая тестовые примеры производительности и функциональности - Оптимизировать механизм
event (события) и поддержка асинхронной функции ожидания
[2024.07.18 - v2.6.0 - Papapig -Melody, Chunel]
- Обеспечивает способ выполнения топологии
pipeline - Предоставьте метод, чтобы определить, существует ли зависимость между
element - Предоставьте метод компиляции Bazel
- Оптимизировать функцию перф
[2024.09.17 - v2.6.1 - Чунель]
- Предоставляет статический метод выполнения
pipeline и предоставляет механизм микро-задачи на основе статического выполнения - Обеспечивает функцию обрезки
pipeline для удаления дублирующих зависимостей между element - Предоставляет метод удаления зависимостей
element - Оптимизировать механизм
event (событие), асинхронные события могут ждать конца - Отпустите проект CGraph-Lite, обеспечивая простые функции композиции DAG и переноса параметров. Интерфейс полностью совместим и может быть переключен на этот проект.
[2024.11.16 - v2.6.2 - Чунель]
- Оптимизировать параметр взаимного механизма исключения и получить производительность
- Исправлена проблема ожидания исключения вспомогательного потока
- Обновление
tutorial контента
Приложение-2

- Благодаря введению и рекомендации «Рейтинга китайских рейтингов Github»: Github Китайский рейтинг.

- Благодаря рекомендации от Awesome-CPP, мы все знаем, это самый авторитетный список рекомендаций для проекта CPP в мире
- Благодаря рекомендации
Taskflow Group : Awesome-Parallel Computing, и мы всегда рассматриваем Taskflow как образец для подражания - Благодаря рекомендации от Awesomeflowflow-Engines
- Спасибо всем участникам разработчиков за их вклад в проект
- Спасибо всем друзьям, которые сделали комментарии и предложения для проекта
CGraph , и не упомянут их один за другим. Все могут присоединиться и построить вместе
Приложение-3
- WeChat: Chunelfeng (добро пожаловать, чтобы сканировать QR -код выше, чтобы добавить автора в качестве друга. Пожалуйста, обратите внимание на вашу личную информацию^_^)
- Электронная почта: [email protected]
- Исходный код: https://github.com/chunelfeng/cgraph
- Форум: www.chunel.cn