中国語|

Cgraphは、サードパーティの依存関係なしに純粋なC ++に基づいた循環G RAPHフレームワークを介したクロスプラットフォームです。
それを使用すると、単純に独自のオペレーターを構築し、依存、並列、集約など、必要に応じて実行中のスケジュールを説明できます。
チュートリアルと連絡先情報は、次のように表示されます。
CGraphは中国語で[色、画像]と呼ばれ、サードパーティの依存関係なしにクロスプラットフォームグラフプロセス実行フレームワークです。基礎となるスケジューリングのGPipeline (パイプライン)を介して、EDAGスケジューリングにおける従属要素の連続的な実行と非依存要素の同時実行の機能を提供します。
ユーザーは、 GNode (ノード)クラスを継承し、サブクラスのrun()メソッドを実装し、必要に応じて依存関係を設定して、タスクのグラフィック実行またはパイプライン実行を実現するだけです。また、グラフの条件付き判断、ループ、および同時実行ロジックを制御するために、マルチノード情報を含むさまざまなGGroup (グループ)を設定することもできます。
このプロジェクトは、さまざまなアプリケーションシナリオでデータの相互運用性のための豊富なParam (パラメーター)タイプを提供します。さらに、上記のさまざまな要素機能は、 GAspectの関数を強化するか、 GAdapter (信号) GEvent導入することで拡張できます。

このプロジェクトは、純粋な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-チャネル]
[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モジュールから均一に継承されます[2021.06.20 -V1.4.1-チャネル]
condition (条件)関数を提供します[2021.06.24 -V1.5.0-チャネル]
pipelineファクトリー作成方法を提供しますtutorialコンテンツを更新します[2021.07.07 -V1.5.1 -Chunel]
[2021.07.11-v1.5.2-チャネル]
[2021.07.31 -V1.5.3-チャネル]
[2021.08.29 -V1.6.0-チャネル]
pipeline関数を提供しますtutorialコンテンツを更新します[2021.09.19 -V1.6.1-チャネル]
Lruオペレーター、 Trieオペレーター、テンプレートノード機能を提供しますtutorialコンテンツを更新します[2021.09.29 -V1.7.0-チャネル]
nodeまたはgroup機能を拡張するためのaspect関数を提供します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 (ドメイン)関数を提供し、 Annドメインの抽象モデルを提供し、個々の専門的な方向性をサポートし始めますtutorialコンテンツを更新します[2022.05.01 -V2.0.1-チャネル]
pipeline登録メカニズムを最適化し、INITメソッドのカスタムオーダー実行をサポートする[2022.05.29 -V2.1.0-チャネル]
elementパラメーター作成方法を提供しますtutorialコンテンツを更新します[2022.10.03 -V2.1.1-チャネル]
group実行ロジックを最適化します[2022.11.03 -V2.2.0-チャネル]
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-チャネル]
messageの公開とサブスクリプション関数を提供します[2023.01.21 -V2.3.0-チャネル]
event (事件)功能CGraph Intro.xmindファイルを提供します。[2023.01.25 -V2.3.1 -Chunel]
[2023.02.10 -V2.3.2-チャネル]
[2023.02.12 -V2.3.3-イェシェニーン、チュネル]
[2023.02.22 -V2.3.4-チャネル]
paramメカニズムとevent (イベント)メカニズムを最適化します[2023.03.25 -V2.4.0-ウッドックス、チャネル]
pipelineスケジューリングリソース管理メカニズムを提供します[2023.05.05 -V2.4.1-チャネル]
pipelineの最大並行性取得方法を提供します。関連するソリューションを提供してくれたHanano-Yuukiに感謝しますpipeline非同期実行機能と出口機能を提供します[2023.06.17 -V2.4.2-チャネル]
MultiCondition (マルチコンディション)関数を提供しますpipeline一時停止の実行と再開の実行機能を提供します[2023.07.12 -V2.4.3-チャネル]
CStatus関数を最適化し、例外ポジショニング情報を追加します[2023.09.05 -V2.5.0-チャネル]
pipelineパフォーマンス分析にパフォーマンス機能を提供しますelementのタイムアウトメカニズムを提供しますpipelineの非同期実行を最適化するためのsome (部分的な)関数を提供する[2023.09.15 -V2.5.1-チャネル]
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間に依存関係があるかどうかを判断する方法を提供する[2024.09.17 -V2.6.1 -Chunel]
pipelineの静的実行方法を提供し、静的実行に基づいてマイクロタスクメカニズムを提供しますpipelineクリッピング機能を提供して、 element間の重複依存関係を削除するelement依存関係を削除する方法を提供しますevent (イベント)メカニズム、非同期イベントは終了を待つことができます[2024.11.16 -V2.6.2-チャネル]
tutorialコンテンツを更新しますWeChatの公式アカウントに関連する紹介文書を公開してくれてありがとう
ジャーナルのおかげで、Hellogithubの紹介と推奨事項:Hellogithub Issue 70


Taskflow Groupからの推奨事項:Awesome Parallelcomputing、そして私たちは常にTaskFlowをロールモデルとして扱いますCGraphプロジェクトについてコメントや提案をしてくれたすべての友人に感謝します。誰もが参加して一緒に構築できます