중국어 |. 영어 읽기

CGRAPH는 3 분의 종속성없이 순수한 C ++를 기반으로 한 순환 graph 프레임 워크를 교차 플랫폼입니다.
이를 통해 자신의 운영자를 간단하게 구축하고 의존성, 병렬, 집계 등과 같은 유용한 도구 및 플러그인과 같은 실행 일정을 설명 할 수 있습니다 .
튜토리얼 및 연락처 정보는 다음과 같이 표시 됩니다 .
CGraph 중국어로 [Color, Picture]라고하며, 타사 종속성이없는 크로스 플랫폼 그래프 프로세스 실행 프레임 워크입니다. 기본 스케줄링 GPipeline (파이프 라인)을 통해 EDAG 스케줄링에서 종속 요소의 순차적 실행 및 동시 실행의 기능을 제공합니다.
사용자는 GNode (노드) 클래스를 상속 받고, 서브 클래스의 run() 메소드를 구현하고 작업의 그래픽 실행 또는 파이프 라인 실행을 실현하기 위해 필요에 따라 종속성을 설정하면됩니다. 그래프의 조건부 판단, 반복 및 동시 실행 논리를 제어하기 위해 다중 노드 정보를 포함하는 다양한 GGroup (그룹)를 설정할 수도 있습니다.
이 프로젝트는 다양한 응용 프로그램 시나리오에서 데이터 상호 운용성을위한 풍부한 Param (매개 변수) 유형을 제공합니다.此外,还可以通过添加GAspect (切面)的方式,实现以上各种元素功能的横向扩展;通过引入GAdapter (适配器)对单个节点功能进行加强;或者通过添加GEvent (信号),丰富和优化执行逻辑。

이 프로젝트는 Pure C ++ 11 표준 라이브러리를 사용하여 작성되었으며 타사 종속성이 없습니다. MacOS , Linux , Windows 및 Android 시스템과 호환되는 것은 CLion , VSCode , Xcode , Visual Studio , Code::Blocks , Qt Creator 및 기타 IDE를 통한 로컬 컴파일 및 보조 개발을 지원합니다.
자세한 기능 소개 및 사용은 yimianzhiyuan.com의 기사 내용을 참조하십시오. 관련 비디오는 B.Com에서 지속적으로 업데이트됩니다.
# 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 ();
}
};# 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 실행됩니다.
[2021.05.04 -V1.0.0 -Chunel]
[2021.05.09 -V1.1.0 -Chunel]
[2021.05.18 -v1.1.1 -Chunel]
name 과 session 정보를 추가하십시오[2021.05.23 -V1.2.0 -Chunel]
[2021.05.29 -V1.3.0 -Chunel]
cluster (클러스터) 및 region (지역) 부서 및 루프 실행 기능 제공tutorial 컨텐츠를 제공하십시오[2021.06.14 -V1.4.0 -Chunel]
param (매개 변수) 전달 메커니즘을 제공합니다group (그룹) 기능 제공, 다중 노드 모듈은 group 모듈에서 균일하게 상속됩니다.[2021.06.20 -V1.4.1 -Chunel]
condition (조건) 기능을 제공합니다[2021.06.24 -V1.5.0 -Chunel]
pipeline 공장 생성 방법을 제공하십시오tutorial 컨텐츠를 업데이트하십시오[2021.07.07 -V1.5.1 -Chunel]
[2021.07.11 -V1.5.2 -Chunel]
[2021.07.31 -V1.5.3 -Chunel]
[2021.08.29 -V1.6.0 -Chunel]
pipeline 기능을 제공합니다tutorial 컨텐츠를 업데이트하십시오[2021.09.19 -V1.6.1 -Chunel]
Lru 연산자, Trie 연산자 및 템플릿 노드 기능 제공 기본 논리를 최적화합니다.tutorial 컨텐츠를 업데이트하십시오[2021.09.29 -V1.7.0 -Chunel]
node 또는 group 기능을 확장하기위한 aspect 기능 제공tutorial 컨텐츠를 업데이트하십시오[2021.10.07 -V1.7.1 -Chunel]
aspect 최적화 (섹션) 구현 로직, 섹션 매개 변수 기능 제공 및 배치 추가 섹션 기능tutorial 컨텐츠를 업데이트하십시오[2021.11.01 -V1.8.0 -Chunel]
adapter 기능 및 singleton 어댑터 기능을 제공합니다pipeline 실행 로직을 최적화하십시오tutorial 컨텐츠를 업데이트하십시오[2021.12.18 -V1.8.1 -Chunel]
CStatus 정보[2022.01.02 -V1.8.2 -Chunel]
task group 기능을 제공합니다.[2022.01.23 -V1.8.3 -Chunel]
function 어댑터를 제공하여 기능 프로그래밍 기능을 구현합니다tutorial 컨텐츠를 업데이트하십시오[2022.01.31 -V1.8.4 -Chunel]
node (노드) 비동기 실행의 기능을 제공합니다[2022.02.03 -V1.8.5 -Chunel]
daemon 기능을 제공합니다.tutorial 컨텐츠를 업데이트하십시오[2022.04.03 -V1.8.6 -Chunel]
DistanceCalculator 연산자 제공 데이터 유형 및 거리 유형의 계산을 구현할 수 있습니다.tutorial 컨텐츠를 업데이트하십시오[2022.04.05 -v2.0.0 -Chunel]
domain (도메인) 기능 제공, Ann 도메인 초록 모델 제공 및 개별 전문가 방향을 지원하기 시작합니다.tutorial内容[2022.05.01 -v2.0.1 -Chunel]
pipeline 등록 메커니즘 최적화 및 INIT 방법의 사용자 정의 주문 실행 지원[2022.05.29 -v2.1.0 -Chunel]
element 매개 변수 쓰기 방법을 제공합니다tutorial内容[2022.10.03 -v2.1.1 -Chunel]
group 실행 로직을 최적화하십시오[2022.11.03 -v2.2.0 -Chunel]
pipeline 간의 데이터 전송을 완료하는 데 사용되는 message (메시지) 기능 제공tutorial 컨텐츠를 업데이트하십시오[2022.12.24 -v2.2.1 -Chunel]
TemplateNode 함수를 제공합니다tutorial 컨텐츠를 업데이트하십시오[2022.12.25 -v2.2.2 -yeshenyong]
[2022.12.30 -v2.2.3 -Chunel]
message 게시 및 구독 기능을 제공하십시오[2023.01.21 -v2.3.0 -Chunel]
event (이벤트) 기능을 제공합니다CGraph Intro.xmind 파일을 제공하십시오.[2023.01.25 -v2.3.1 -Chunel]
[2023.02.10 -v2.3.2 -Chunel]
[2023.02.12 -v2.3.3 -Yeshenyong, Chunel]
[2023.02.22 -v2.3.4 -Chunel]
param 메커니즘 및 event (이벤트) 메커니즘을 최적화합니다[2023.03.25 -v2.4.0 -Woodx, Chunel]
pipeline 스케줄링 리소스 관리 메커니즘을 제공합니다[2023.05.05 -v2.4.1 -Chunel]
pipeline 최대 동시 획득 방법을 제공합니다. 관련 솔루션을 제공 한 Hanano-Yuuki에게 감사드립니다pipeline 비동기 실행 함수 및 실행 중 종료 기능 제공[2023.06.17 -v2.4.2 -Chunel]
MultiCondition (다중 조건) 기능을 제공합니다pipeline 일시 정지 실행 및 이력서 실행 기능을 제공합니다[2023.07.12 -v2.4.3 -Chunel]
CStatus功能,添加了异常定位信息[2023.09.05 -v2.5.0 -Chunel]
pipeline 성능 분석을위한 성능 기능을 제공합니다element 에 대한 시간 초과 메커니즘을 제공합니다pipeline 의 비동기 실행을 최적화하기 위해 some (부분) 기능을 제공합니다.[2023.09.15 -v2.5.1 -Chunel]
fence 기능을 제공합니다coordinator (코디네이터) 기능을 제공합니다[2023.11.06 -v2.5.2 -Chunel]
message (메시지) 기능을 최적화하여 차단을 작성할 때 처리 방법을 설정하고 메모리 사본 시간 수를 줄일 수 있습니다.example 관련 컨텐츠 추가[2023.11.15 -v2.5.3 -Chunel]
proto 정의 파일을 제공합니다mutable 기능을 추가하십시오[2024.01.05 -v2.5.4 -Chunel]
test 컨텐츠를 제공하십시오event (이벤트) 메커니즘을 최적화하고 비동기 대기 기능을 지원합니다[2024.07.18 -v2.6.0 -Papapig -Melody, Chunel]
pipeline 토폴로지를 실행하는 방법을 제공합니다element 간에 의존성이 있는지 확인하는 방법을 제공합니다.[2024.09.17 -v2.6.1 -Chunel]
pipeline 의 정적 실행 방법을 제공하고 정적 실행에 기반한 마이크로 작업 메커니즘을 제공합니다.element 간 중복 의존성을 제거하기 위해 pipeline 클리핑 기능을 제공합니다.element 종속성을 삭제하는 메소드를 제공합니다event 최적화 (이벤트) 메커니즘, 비동기 이벤트는 끝을 기다릴 수 있습니다.[2024.11.16 -v2.6.2 -Chunel]
tutorial 컨텐츠를 업데이트하십시오WeChat 공식 계정에 관련 소개 문서를 게시해 주신 DOCS에 감사드립니다
Hellogithub의 저널 소개 및 권장 사항 : Hellogithub Issue 70에 감사드립니다.


Taskflow Group 의 권장 사항 덕분에 : Awesome-Parallel-Computing, 그리고 우리는 항상 작업 플로우를 역할 모델로 취급합니다.CGraph 프로젝트에 대해 의견과 제안을 한 모든 친구들에게 감사의 말씀을 전하며 하나씩 언급하지 않을 것입니다. 모두가 합류하고 함께 구축 할 수 있습니다