コンピュータシステム - 3.コンピュータ構成要素 - 1.プロセッサ - 10.マルチプロセッサシステム

Last Update : April 29 2021 12:42:22

     

a. 疎結合マルチプロセッサシステム

(LCMP) [loosely-coupled multiprocessor system]
複数のプロセッサが独立した主記憶を備え、それぞれが個別のOSによって制御されるマルチプロセッサシステム、プロセッサ間通信は高速バスまたは通信リンクで行う方式。信頼性は高いが多くのプロセッサが必要。


b. 密結合マルチプロセッサシステム

(TCMP) [tightly-coupled multiprocessor system]
主記憶を共有しながら同一のOSで制御されるもの。 複数のプロセッサが主記憶やディスクなどの資源を共有し、互いに連絡をとりながら1つのOSによって制御されるマルチプロセッサシステムのこと。


c. アムダールの法則

並列化によるコンピュータの性能効果について示した法則。
並列化によるコンピュータの処理性能の向上は、並列化できず逐次実行するしかないタスクに制約を受ける。したがって高い並列化率の望める場合は、使用するプロセッサ数を増やし並列処理を行うことで大きな性能効果を得ることができるが、並列化できない部分が大きい場合は、使用するプロセッサ数を増やしても大きな性能の向上は望めないというもの。
「性能向上率を決定するのはプロセッサ数ではなくアルゴリズムである」ということになる。アルゴリズムは、これ以上並列化できないという地点に最終的に到達する。
この法則は、ある計算のうち高速化によって影響を受ける部分の割合 P とその性能向上率 S から、全体として達成可能な性能向上率を求めるものである。例えば、ある改良が計算全体の 30% を性能向上させる場合、P は 0.3 である。また、その部分が2倍に高速化されるなら S は 2 である。アムダールの法則によれば、全体としての性能向上は次の式で表される。

従来の計算時間を 1 とする。改良されたプログラムの計算時間は、改良と関係しない部分の計算時間(1 - P)と改良された部分の計算時間(P/S)の合計となる。全体の性能向上率は、従来の計算時間を改良されたプログラムの計算時間で割ったものであり、上の式はそれを表している。
アムダールの法則の意義は、コンピュータシステムの改良すべき箇所は現状分析で明らかになるということを示している点である。例えば、ある演算を非常に高速化させる改良を思いついたとしても、その演算がシステム全体から見てほとんど使われないのであれば、改良する意味はほとんど無いのである。

特殊な場合として、並列化へのアムダールの法則の適用がある。並列化できない順次実行部分の実行時間の割合を F としたとき、並列化可能な部分は (1 - F)であり、N個のプロセッサを使ったときの全体の性能向上率は次の式で表される。

が無限大に近づく極限では、性能向上率は 1/F となる。実際、(1 - F)/N が Fに比べて十分に小さくなると、Nを増やしても性能が向上しなくなる(価格性能比が悪くなる)。
例として、Fがわずか10%ならば N をどれだけ大きくしても性能向上は1プロセッサの10倍までで頭打ちとなる。このため、並列コンピューティングが有効であるのは、プロセッサ数が少ない場合か、適応領域の問題の F の値が極めて小さい場合(embarrassingly parallel と呼ぶ)に限られる。並列コンピューティングのプログラミング技法の多くは、Fを可能な限り小さくするためのものである。
一般に、デスクトップ・コンピューティングはアムダールの法則のためにマルチプロセッシングが役に立たないと言われ、マルチコア化されたマイクロプロセッサの導入も疑問視されていたが、インテルは将来的にデスクトップのアプリケーションの並列化が進むとしてマルチコアの導入に積極的である。


d. クラスタ

複数のコンピュータを相互に接続し、ユーザや他のコンピュータに対して全体で1台のコンピュータであるかのように振舞わせる技術。複数のコンピュータを1台のコンピュータを扱うように管理することができる。1台が停止してもシステム全体が止まることはなく、処理を続行したまま修理や交換が行える。この間、外部からはシステムの性能が落ちたようにしか見えない。また、接続するコンピュータの台数を増やすだけで性能の向上をはかることができる。
クラスタを構成するコンピュータの一台一台のことをノードと呼ぶ。
クラスタには、高い可用性を目的としたHA(High Availability)クラスタと、高性能な計算環境を実現することを目的としたHPC(High Performance Computing)クラスタの2種類がある。

HA クラスタ(High Availability Cluster)
一台のコンピュータでは得られない高可用性の確保を目的としたクラスタシステムをHA クラスタという。HA クラスタはさらに、その実現方式によりフェイルオーバークラスタと負荷分散クラスタの2種類に分けられる。

  • フェイルオーバークラスタ
    同一の役割を持たせた複数台のコンピュータを、実際にサービスを提供する稼働系(現用系)ノードと、それをバックアップするための待機系ノードの2グループに分ける。稼働系に障害が発生した場合、待機系のノードを稼働系ノードに切り替える。このような仕組みでサービスを中断させることなく可用性を高めることを目的としたクラスタが、フェイルオーバークラスタである。これらはまたActive-Standby 型クラスタや高可用密結合クラスタとも呼ばれる。通常、単にHA クラスタと言った場合、このフェイルオーバークラスタを指す。
  • 負荷分散クラスタ
    同一の役割を持たせた複数台のコンピュータを、実際にサービスを提供する稼働系ノードとして並列に動作させる。このシステムでは、一台が停止しても残りのノードでサービスを継続することが可能となる。さらに、この仕組みによって高可用性を確保すると同時に、複数ノードで処理を分担することにより、一台のサーバでは得られなかった処理性能を確保することを目的としたクラスタシステムが、負荷分散クラスタである。Active-Active 型、あるいは密結合並列クラスタとも呼ばれる。

HPC クラスタ(High Performance Computing Cluster)
複数台のコンピュータを結合させて演算処理を分担し、一台のコンピュータでは得られない高性能を確保することを目的としたクラスタをHPC クラスタという。HPC クラスタはスーパーコンピュータの一形態ととらえることができる。通常は、主に大規模な演算を必要とする数値解析、構造解析やシミュレーションといった科学技術計算にHPC クラスタが利用される。HA クラスタとは異なり、各ノードの役割は一律ではない。HPC クラスタを構成するノードは、分担して演算を行う複数台の演算用ノード、演算用ノードを取りまとめる制御用ノード、データベースを扱うデータ用ノードなど、様々な役割をそれぞれが担っている。


  [ 例題 ] 
  1. 平成24年度春期 問10  マルチコアプロセッサ
  2. 平成16年度秋期 問33  マルチプロセッサ
  3. 平成15年度春期 問37  クラスタリング


     

www.it-shikaku.jp