Addison Wesley刊行でSima,Fountain,Kacsuk共著の"Advanced Computer
Architectures"は百科事典的にこれまでのコンピュータアーキテクチャが網羅されて
いて良い教科書だと思うのですが,索引にはSMPあるいはSymmetric Multi Processor
というのは含まれて居ません。

  8章がShared Memory MIMD Archtecturesという章で,Shared Memory Computerの中
にSingle Address Space Memory Accessというカテゴリがあります。すべてのプロセ
サから同じメモリ空間が見えるマルチプロセサはこの分類に入ります。その中に
Physical Shared MemoryとVirtual(Distributed)Shared Memoryというサブカテゴ
リがあり,前者がUMA,後者は更にNUMA,CC-NUMA,COMAと細分されています。勿論,
これが唯一の分類法というわけではないのですが,一つの考え方です。そして,一般
的にはUMAをSMPと呼んでいると思います。

  Intelのように共通バスのUMAは考えやすいのですが,最近のようにスイッチベース
になるとメモリチップからの読み出しパスの長さによって,論理的にはUMAでもアク
セス時間が違うようになっています。一方,昔のNUMAはコントロール回路が遅かった
のでローカルとリモートでアクセス時間が相当違い,意識してプログラムを書かない
と性能が出なかったのですが,最近では回路が速くなってリモートでもローカルの3
倍以内程度でアクセスできるようになり,ユーザから見て差が無くなってきていま
す。

  実装上のUMAとCC-NUMAあるいはCOMAの大きな違いはキャッシュコヒーレンシの取り
方です。UMAの場合はUniformなので全プロセサにアドレスをブロードキャストしてス
ヌープします。一方,CC-NUMAではホームノードにテーブルを持ち,どのキャッシュ
ラインがどのノードに持っていかれたかを管理しており,スヌープをそれらのノード
だけに送るというやり方が一般的です。

  全部のメモリアクセス要求を全部のプロセサに送るとN^2でトラフィックが増える
のでUMAでスケールを大きくするのは困難が大きく,最近の大規模システムは殆ど
CC-NUMAです。ということで,各社,あまりSMPとは言わなくなっていると思います。
SunなどはCC-NUMAのSF15KをScalable Multi Processorなどという紛らわしい名前で
呼んでいますが,流石にSymmetricというのは遠慮しているようです。

Ando_san


"MAEDA Atusi" <maeda@cc.tsukuba.ac.jp> wrote in message
news:m3ptikyhxx.fsf@maedapc.cc.tsukuba.ac.jp...
> kaz@kobe1995.net (NAKAMURA Kazushi) writes:
>
> > fj.sys.ibmpcで昔話題になりましたが、Xeonならどれでもというわけでは
> > ないようです。Pentium3 Xeonでも、4way以上のSMPが組めるのは550MHz,
> > 700MHzのものだけです。他のPentium3 Xeonは、2way止まり。
> > Pentium4 Xeonも2way止まりで、HTを利用してやっと4スレッドという
> > ことではないかなあ。
>
> 秋葉原などでPentium Xeonとして売られているものはDualまでの版ですね.
> Pentium Xeon MPやItanium2なんかは手に入るのかな.Athlon MPもデュア
> ル迄だし,Opteron も 2xxばっかりだし.
> (初代Itanium(Merced)をジャンク屋で2980円とかで買った人がいるそうですが,
> マザーは入手できなかったようです.)
>
> > >自分で SMP (4頭以上) を組み立てる、なんてことはできるんでしょ
> > >うか。8 個くらいは欲しいんだけれど。Dual までは、よくマザー
> > >ボードも見るのですが、4 というのは見たことがありません。
> > SuperMicroなんかだと有りますよ。Asusも一般向けではなく、企業
> > 向けのカタログなんかには大抵載っています。
>
> SupermicroのP4QH6とかは,検索してみると通販でも買えそうですね.20万を
> 優に越える値段だし,Xeon MPをどう入手するかという問題がありますが.
>
> > >> 遠い近いでレーテンシが変わっても(NUMAでも)SMPって言うんですかね.
> > >> まあ,NUMAとUMAを合わせてSMPなのかな.
> > >
> > >UMA (Uniform Memory Access), NUMA (Non-Uniform Memory
> > >Access)、Norma (No Remote Memory Access)というマルチプロセッ
> > >サの分類は、1988 年くらいの Mach の論文でよく出てきたもので
> > >す。それが最初かどうかはわからないけれど。OSを作る時には、
> > >そういう分類の仕方は便利です。UMA のことを最近は、SMP
> > >(Symmetric Multiprocessor) と言っているので、NUMA をSMP とは
> > >言わないでしょう。
> > >
> > >Symmetric と Uniform が違うと言われても困るし。
> >
> > 一般アプリを作るプログラマまで、マシンのトポロジ構成を意識するようでは
> > Symmetricとは呼べないと思います。SMPのメリットは、メモリやPEのトポロジ
> > を意識せずとも、単にマルチスレッドなプログラムを書いておけば、PE数に
> > 「ほぼ」比例した性能向上が簡単に得られることに有ると思うので。
>
> Symmetricでないマシンでは,たくさんあるうちの特定のCPUしか(ハード的に)
> 割り込み処理やI/Oができなかったのが,「どのCPUも同じ役割が出来る」とい
> う意味でSMP と呼んでいたのでは? メモリのアクセスレーテンシとは関係ない
> と思います.
>
> ところで,Solaris 9にはMPO (Memory Placement Optimization)という機能が
> 入っていて,これを使ってスレッドやメモリの割り付け方を制御できるそうで
> す.
> http://www.sun.com/servers/wp/docs/mpo_v7_CUSTOMER.pdf
> これを使うと,ランダムに割り付けた場合と比べて,メモリのバンド幅はマイ
> クロベンチマークで最大4倍ほど向上するようですが,アプリケーションの性
> 能向上はせいぜい10%前後のようです.
> (ベンチマークの数値が10%向上したら,宣伝上は大きいでしょうけど.)
>
> 今まで(Solaris 8まで)は,物理的構成を無視して配置していたので,がんばっ
> てレーテンシの差が小さいアーキテクチャにしていたが,MPOができたので今
> 後はもっと階層化して楽にプロセッサ数を増やす…ってのはうがちすぎでしょ
> うか.その方がベンチマークの数値(だけ)は向上しそうです.
>
> # 単に増やすだけならクラスタで良いのかな.
>
> > >外部の回路で頑張れば,DP版でも2より多いプロセッサ数でマルチプロセッシ
> > >ングができそうですが…この辺は素人なので良く分かりません.また,MP版の
> > >資料には「4-way, 8-way, あるいはそれ以上のプロセッサ数」と書いてありま
> > >すが,Xeon MPで4よりプロセッサ数が多いSMPマシンって存在するんでしょう
> > >か?
>
> > 売ってました。で、とあるRS-232Cで対戦するゲームソフトのファイラー
> > にコピーのパラメータだけでなく、本来一対一で対戦するそのソフトを
> > 多人数で対戦する為のRS-232Cケーブルの配線図がグラフィック文字で
> > 描いてありました。あんな感じですかね。
>
> たしかに,なんとなくそんな感じかも.
> でも,外づけのアービタってのは,昔は当たり前だったんじゃないでしょうか.
> 今やると,レーテンシがどうなるかとか,バススヌープがどうなるかとかは良
> く分からんですが.いずれにせよ,チップセットを自作するのは,今や大手メー
> カーにとっても敷居が高過ぎるでしょうね.
>
> 前田敦司