Parallel Linqなどのシステムを使用すると、無名関数やクエリなどの実行を1台のマシン内の複数のコアとスレッドに分割することができます。これを拡張して、forループ(など)やs、 sなどのParallel.For()
値型などの標準言語構造を使用して複数のマシンで実行し、アプリケーションソースの変更を最小限に抑える機能が必要です。理想的には、これにより、プロジェクトを開き、メソッドに属性を追加し、再コンパイルして拡張機能にアクセスできるようになります。int
struct
次のようなものが必要なようです。
コンパイルされたコードブロック(ラムダなど)をキャプチャし、必要なデータとともに別のノードで実行されているワーカープロセスに渡す機能、または
問題のコードをキャプチャするプリプロセッサを提供し、変数参照などをネットワーク通信、キャッシング、その他の必要なアセットへのアクセスを処理するクラスへの参照に置き換える一種のテンプレートプロジェクトにコンパイルし、他のマシンで実行されている使用可能なワーカーノードへの結果のDLL。
Roslynは、ここで役立つツールをいくつか提供しているようです。これを可能にするために現在のコンパイルパイプラインにフックする方法はありますか?
編集
さて、私はこれが可能であることを知っています、なぜならこれらの人はそれをしたからです。問題は、どのように?