C# と Visual Basic と .NET CLR は、ユーザー インターフェイスや基幹業務アプリケーションなどの優れた開発環境です。
ただし、実行タイミングが前後するコードをたくさん書いておりO(n^3): n > 1000
、いくつかの場所ではそれよりも高くなっています。基本的に、これらのループは 1 つの大きな配列から読み取り、簡単な計算を行い、5 つまたは 6 つのテストを行い、結果を同じサイズの 2 つ目の配列に書き込みます。
そのほとんどは、Intel Fortran プログラムを 64 ビットの世界に持ち込むために移植されたコードです。そのコードの自動ベクトル化を行わないと、実行時間が大幅に遅くなることに注意してください。.NET は、現在販売されているすべての Intel プロセッサに見られる SIMD 操作の使用をサポートしていません。
熟練したプログラマーが移植できる厳密なアルゴリズムで関数が既に記述されているため、そのプログラマーにコードを C++ CLR ライブラリに移植するように依頼することもアプローチの 1 つかもしれないと考えました。
- 自動ベクトル化され、C#/VB プログラムが呼び出すための CLR インターフェイスを提供する C++ ライブラリを取得することは可能ですか?
- いいえの場合、回避策はありますか? COM インターフェイスはそのような回避策の 1 つですか?
- はいの場合、それはどのような形を取る必要がありますか?