科学的応用のための C# - cPython 統合に関するフィードバックが必要です。
シナリオは次のとおりです。データの取得と視覚化のための C# - データ操作のための CPython。
一般的な使用例:
- C# コードはデバイスからリアルタイム データを取得します
- C# コードはデータを cPython コードに渡し、詳細を尋ねる
- Cpython コードは魔法のように動作します
- Cpython コードは結果を c# コードに戻します
- C# は WPF アプリケーションでデータを視覚化します
c# と cPython の両方のコード (項目 1)、3)、および 5)) は、速度に関して既に最適化されています。双方向 (項目 2) および 4)) で渡されるデータは、基本的に 10E6 double の配列です (複雑なデータ構造は含まれません)。
優れたパフォーマンス (1 から 5 への速度) と、クライアント (c# コード) 側での開発を最小限に抑えるデカップリング機能を備えたインターフェイス ソリューションを見つけたいと思います。実際には両方の側が同じマシンで実行されますが、ソリューションをスケールアウトしたいと思います。
私が試した解決策 - 問題:
- a) C# + .NET での python アルゴリズムの移植 - ドメイン側で書く/書き直すコードが多すぎる、cPython が科学的側面のほとんどすべてを提供する特殊なライブラリがない
- b) C# の埋め込み ironpython + マネージ コードでの C++ 拡張のラッピング/移植 ( ironclad の有無にかかわらず) - アルゴリズムの実行中に使用される構造のマーシャリングによって引き起こされるボーダーライン パフォーマンス - サブコンポーネントのバージョンをアップグレードするときの dll 地獄。
- c) ironpython と python の間に ironpython + rpc を埋め込む C# - 保守性の問題、3 つの C#/ironpython/python 間でデータを「渡す」必要があるため満足できない。
- d) XML-RPC、JSON-RPC - パフォーマンス (速度) に満足していません。
私が評価する予定のまだ試していないソリューション:
- e) アパッチスリフト
- f) ZeroRPC
批判、コメント、提案をお寄せいただきありがとうございます。