5

NUMAは並列プログラミングに有望であるように思われます。私が間違っていなければ、現在の最新のCPUにはi7のようなサポートが組み込まれています。

CLRがNUMAをすぐに適応させると思いますか?

編集:これは、それをサポートし、それを利用することを意味します。

4

4 に答える 4

2

NUMA はハードウェア アーキテクチャであり、必ずしも CLR で直接採用する必要があるものではありません。詳細については、NUMA FAQ を参照してください。

そうは言っても、ソフトウェアにそのアーキテクチャを認識させることには利点があります。CLR チームのメンバーは、キャッシュの一貫性などの問題を認識しているようです。そのため、これにはいくつかの最適化があると思います。また、C# 4 のタスク並列ライブラリのスケジューラの設計は、NUMA アーキテクチャをより有効に活用するために有望なようです。

于 2009-03-10T20:37:45.750 に答える
1

ある意味で、NUMA は CLR のメモリ モデルと直交しています。言い換えれば、ハードウェア/OS には独自のアクセス方法があり、CLR には独自のメモリ モデルの要求があり、それらをうまく連携させるのは CLR 実装者次第です。実際には、これは難しく、現在の実装には欠陥があります。しかし、CLR は NUMA をサポートするハードウェア上で既に実行されているため、「すぐに NUMA に対応する」という言葉の意味がよくわかりません。

于 2009-03-10T20:38:51.550 に答える
1

これまでのすべての回答は、NUMA をハードウェア アーキテクチャとして強調する点で正しいものです。同時実行性と CLR に関するJoe Duffy の記事は興味深いものです。

于 2009-03-10T20:41:09.657 に答える
1

NUMA では、基本的にプロセッサごとのメモリ コントローラがあります。Intel QuickPath と AMD HyperTransport でそれが実現します。問題は、私の知る限り、現在、i7 にも Phenom にも、複数の CPU をサポートするマザーボードはありません。

とにかく、これは非常に低レベルであり、CLR とは何の関係もありません。それを利用するかどうかは、オペレーティングシステム次第です。

于 2009-03-10T21:04:18.183 に答える