マルチコアと同期

NUMA(不均一メモリアクセス)のシステムの説明として正しいものはどれか。

  1. Aすべてのコアから、すべてのメモリに同じ時間でアクセスできる
  2. Bコアから近いメモリと遠いメモリがあり、遠いメモリへのアクセスは時間がかかる
  3. C各コアは自分のメモリしか読めず、ほかのコアのメモリは使えない
答えと解説を見る

正解:B. コアから近いメモリと遠いメモリがあり、遠いメモリへのアクセスは時間がかかる

複数のCPUのソケットを持つサーバなどでは、各ソケットに直接つながったメモリがあり、ほかのソケットのメモリにはソケット間の接続を通ってアクセスします。そのため、近いメモリより遠いメモリの方が遅く、帯域も小さくなります。すべてのメモリは1つのアドレス空間に見えるのでプログラムはそのまま動きますが、データとスレッドを同じ側に置くと性能が上がります。

  • A. それは均一なメモリアクセス(UMA)です。
  • B. 正しい。データを近いメモリに置くことが大切です。
  • C. 遠いメモリにも、時間はかかりますがアクセスできます。
この分野を解く 分野ページへ

マルチコアと同期のほかの問題

  1. LinuxのNUMAシステムでよく使われるファーストタッチの方針(初めてページに書き込んだスレッドが動いているノードのメモリにそのページを置く)で注意すべき点として正しいものはどれか。
  2. 並列プログラムで、コアの数を増やしても性能が思うように伸びない原因として当てはまらないものはどれか。
  3. ループの繰り返しを複数のスレッドに分けるとき、繰り返しごとの計算量が大きくばらつく場合に適した分け方はどれか。
  4. 配列の全要素の合計を複数のスレッドで求めるとき、性能のために適した方法はどれか。
  5. 読み書きロック(リーダー・ライターロック)の特徴として正しいものはどれか。