マルチプロセッサ

読み:まるちぷろせっさ / 英語表記:multiprocessor

複数のプロセッサ(CPU)で処理を分担して、性能を高める方式。ただし、プロセッサの間の調整などのオーバーヘッドがあるため、台数を増やしても性能は台数に比例して上がらず、ある値で頭打ちになる。

イマシルちゃんの解説

宿題を1人でやるより、友だちと分けてやったほうが早く終わるよね。

でも、10人、100人と増やしていくと、
「だれがどこをやる?」って相談したり、答えをまとめたりする時間がどんどん増えて、
思ったほど早くならないんだ。
人数を増やせば増やすほど速くなる、っていうわけじゃないんだよ。

より深い解説

種類

種類内容
密結合マルチプロセッサ複数のプロセッサが、主記憶を共有する。1つのOSで制御する(マルチコアのCPUなど)
疎結合マルチプロセッサプロセッサごとに主記憶とOSを持ち、通信でつながって処理を分担する(クラスタなど)

オーバーヘッドを含む性能のモデル

1台の性能を1、台数を n、1台増やすごとに加わるオーバーヘッドの割合を a として、全体の性能 P を次のように表すモデルがある。

P = n ÷(1 +(n − 1)× a)

n を限りなく大きくすると、分母の 1 は無視でき、(n − 1)は n とほぼ同じになるので、

P ≒ n ÷(n × a)= 1 ÷ a

となり、性能は 1/a で頭打ちになる。

an=2n=4n=16上限(n → ∞)
0.05約1.90約3.48約9.1420
0.2約1.672.54.05

オーバーヘッドが大きいほど、台数を増やす効果は早く小さくなる。

アムダールの法則

プログラムのうち、並列に処理できる部分の割合(並列化率)を p、プロセッサの数を n とすると、全体の速さが何倍になるか(速度向上率)は、次の式で表される。

速度向上率 = 1 ÷((1 − p)+ p ÷ n)

n を限りなく大きくしても、並列にできない部分(1 − p)の時間は縮まらないため、速度向上率の上限は 1 ÷(1 − p) になる。

並列化率 pn=4n=16上限
0.51.6倍約1.88倍2倍
0.9約3.08倍6.4倍10倍

並列にできない部分を減らすことが、台数を増やすことと同じくらい重要である。

実際の試験ではここに出る!

この用語が出てくる記事

↑